第三章 通用数据处理指令答案
3.3 1) ESP减2
2) mov edx, [esp] add esp, 4 3) 78894111 4) 26h,0,be26h,0 5) 68h,0 6) 0098h,零位 7) ff98h,符号 8) 0,0,0
9) 0123456788765432h 10) 4 3.4
1) mov eax,050ah 2) mov dvar,050ah 3) mov esi,edx 4) mov dvar,al 5) mov ds,ax 6) mov eax,dvar 7) mov ds,dvar 8) mov ax,ds
9) Mov dvar,ds 3.5
1) 类型不一致
2) 指令指针寄存器(eip)不能像通用寄存器那样直接赋值修改。其是在执行控制转移指令、出现中断或异常时被处理器赋值而相应改变。
3) 立即数不能向段寄存器赋值。 正确的写法是:mov ax ,1234h Mov es,ax
4) 段寄存器不能向段寄存器赋值。段寄存器属于专用寄存器。 5) 超范围。Al(低八位)寄存器的范围是:0~255 6) 无明确类型。
正确的写法是:mov byte ptr[esi], 45h 7) 正确的写法是:mov eax,[ebx+edi] 8) 不可以向立即数传数据。 3.6
1) Mov ecx ,[edi] Mov [edi],ebx Mov ebx,ecx 3.7
堆栈:即按照先进后出存取原则组织的存取区域。
基本操作:进栈指令PUSH,出栈指令POP 3.8
1)0012ffach 2) 0012ffaah 3) 0012ffa6h 4) 0012ffaah 5) 0012ffach 6) 0012ffb0h 3.10
Cf:进位标志,体现二进制数据最高位的进位或借位。针对无符号整数运算设计,用于反映无符号数据加减运算结果是否超出范围、是否需要利用进(借)位反映正确结果。
Of:溢出标志,表达有符号整数进行加减运算的结果是否超出范围。针对有符号整数运算。
也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;而如果将参加运算的操作数认为是有符号数,则要注意是否溢出。
3.11分别执行如下程序片段,说明每条指令的执行成果 (1) mov eax,80h ;eax= 80h
add eax,3 ;eax=83h, CF=0 ,SF=0
add eax,80h ;eax=103h, CF=0 ,SF=0
adc eax,3 ;eax=106h, CF=0 ,SF=0
(2) mov eax,100 ;eax=64h add ax,200 ;eax=12ch, CF=0
(3) mov eax,100 ;eax=64h add al,200 ;eax=2ch, CF=1
(4) mov al,7fh ;al=7fh
sub al,8 ;al=77h ,CF=0,SF=0 sub al,80h ;al=f7h,CF=1,SF=1 sbb al,3 ;al=f3h,CF=0,SF=0
3.12给出下列各条指令执行后AL的值,以及CF、ZF、SF、OF和PF的状态。
mov al,89h al=89h,不改变上一条指令的标志 add al,al al=12h, CF=1,ZF=0,SF=0,OF=1,PF=1 add al,9dh al=0afh, CF=0,ZF=0,SF=1,OF=0,PF=1 cmp al,obch al=0afh, CF=1,ZF=0,SF=1,OF=0,PF=1 sub al,al al=00h, CF=0,ZF=1,SF=0,OF=0,PF=1 dec al al=0ffh, CF=0,ZF=0,SF=1,OF=0,PF=1
inc al al=00h, CF=0,ZF=1,SF=0,OF=0,PF=1 3.13 如下两段程序执行后,EDX,EAX寄存器对的值各是多少? (1)eax=f0000000h edx=11h (2)eax=e0000000h
edx=ffh
3.14请分别用一条汇编语言指令完成如下功能: (1)add edx,ebx (2)add al, [ebx+esi] (3)add [ebx+0b2h],ecx (4)add vard,3412h (5)add eax, 0a0h 3.15
3.16分别执行如下程序片段,说明每条指令的执行结果: (1);ESI=9CH ;ESI=80H ;ESI=FFH ;ESI=01H (2);EAX=1010B
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第三章习题答案(32位汇编)在线全文阅读。
相关推荐: