第三章计算机答案,计算机系统第三章答案-20210412094436.docx-原创力文档

参考答案:

(1)后缀

:w,

基址+比例变址+偏移,

(2)后缀

b,

寄存器,

(3)后缀

l,

比例变址,

(4)后缀

b,

基址,

(5)后缀

l,

立即数,

(6)后缀

l,

立即数,

(7)后缀

w,

寄存器,

(8)后缀

l,

基址+变址+偏移,

寄存器 基址+偏移 寄存器

寄存器

寄存器

寄存器

寄存器

参考答案:

源操作数是立即数 OxFF,需在前面加‘ $'

源操作数是16位,而长度后缀是字节‘ b',不一致

(3 )目的操作数不能是立即数寻址

操作数位数超过16位,而长度后缀为16位的’w'

不能用8位寄存器作为目的操作数地址所在寄存器

源操作数寄存器与目操作数寄存器长度不一致

不存在ESX寄存器

源操作数地址中缺少变址寄存器

?参考答案:

表3.12题5用表

src type

dst type

机器级表示

char

int

movsbl %al, (%edx)

int

char

movb %al, (%edx)

int

unsigned

movl %eax, (%edx)

short

int

movswl %ax, (%edx)

unsigned char

unsigned

movzbl %al, (%edx)

char

unsigned

movsbl %al, (%edx)

int

int

movl %eax, (%edx)

?参考答案:

R[ebp]+8、R[ebp]+12、(1) xptr、yptr和zptr对应实参所存放的存储单元地址分别为:

R[ebp]+8、R[ebp]+12、

R[ebp]+16。

(2)函数func的C语言代码如下: void fun c(i nt *xptr, i nt *yptr, i nt *zptr) {

int tempx=*xptr;

int tempy=*yptr;

int tempz=*zptr;

*yptr=tempx;

*zptr = tempy;

*xptr = tempz;

?参考答案:

R[edx]=x

R[edx]=x+y+4

R[edx]=x+8*y

R[edx]=y+2*x+12

R[edx]=4*y

R[edx]=x+y

&参考答案:

指令功能为:R[edx] — R[edx]+M[R[eax]]=OxM[0x8049300],寄存器 EDX 中内容改变。改变后的

内容为以下运算的结果:+FFFFFFF0H

0000 0000 0000 0000 0000 0000 1000 0000

+ 1111 1111 1111 1111 1111 1111 1111 0000

1 0000 0000 0000 0000 0000 0000 0111 0000

因此,EDX中的内容改变为 0根据表3.5可知,加法指令会影响 OF、SF、ZF和CF标志。OF=0 , ZF=0, SF=0, CF=1。

指令功能为:R[ecx] — R[ecx]-M[R[eax]+R[ebx]]=0M[0x8049400],寄存器 ECX 中内容改变。

改变后的内容为以下运算的结果: -

0000 0000 0000 0000 0000 0000 0001 0000

+ 0111 1111 1111 1111 1111 1111 1111 1000

0 1000 0000 0000 0000 0000 0000 0000 1000

因此,ECX中的内容改为 0根据表3.5可知,减法指令会影响OF、SF、ZF和CF标志。OF=1 ,

ZF=0 , SF=1, CF=1 二 0=1。

指令功能为:R[bx] — R[bx] or M[R[eax]+R[ecx]*8+4],寄存器BX中内容改变。改变后的内容为以下运算 的结果:0x0100 or M[0x8049384]=0100H or FF00H

0000 0001 0000 0000

or 1111 1111 0000 0000

1111 1111 0000 0000

因此,BX中的内容改为OxFFOO。由3.3.3节可知,OR指令执行后 OF=CF=O ;因为结果不为0,故ZF=0 ; 因为最高位为1,故SF=1。

test指令不改变任何通用寄存器,但根据以下与”操作改变标志:R[dl] a nd 0x80

1000 0000

and 1000 0000

1000 0000

由3.3.3节可知,TEST指令执行后OF=CF=O;因为结果不为 0,故ZF=0 ;因为最高位为1,故SF=1。

指令功能为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值