- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计(第二版) 钱晓捷 习题答案第二章(01)
2.1
(1)AX=1200h
(2)AX=0100h
(3)AX=4C2Ah
(4)AX=3412h
(5)AX=4C2Ah
(6)AX=7856h
(7)AX=65B7h 2.2(1) 两操作数类型不匹配
IP 指令指针禁止用户访问
立即数不允许传给段寄存器
段寄存器之间不允许传送
两操作数类型不匹配
目的操作数应为[ BP ]
源操作数应为 [BX+DI]
立即数不能作目的操作数
2.3
lea bx,table ;获取 table 的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8
xlat ;转换为格雷码,AL=12H 2.4
堆栈是一种按“先进后出”原则存取数据的存储区域。
堆栈的两种基本操作是压栈和出栈,对应的指令是 PUSH 和 POP。2.5
mov ax,8057h push ax
mov ax,0f79h push ax
pop bx ;bx=0f79h
pop [bx] ;DS:[0f79h]=8057h 2.6
AL=89h
CF
ZF
SF
OF
PF
AL=12h
1
0
0
1
1
AL=0afh
0
0
1
0
1
AL=0afh
1
0
1
0
1
AL=00h
0
1
0
0
1
AL=0ffh
0
0
1
0
1
AL=00h
0
1
0
0
1
2.7 W=X+Y+24-Z
2.8
ADD DX,BX
ADD AL,[BX+SI]
ADD [BX+0B2H],CX
ADD WORD PTR [0520H],3412H
ADD AL,0A0H
;为了避免与操作数地址混淆,将题中 X,Y,Z,V 字操作数改为 A,B,C,D mov ax,X ;ax=A
imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax
mov bx,dx ;bx,ax -- dx,ax =A*B mov ax,Z ;ax = C
cwd ;dx,ax =C (扩展符号后为双字)
add cx,ax
adc bx,dx ;bx,cx -- bx,cx+dx,ax=A*B+C sub cx,540
sbb bx,0 ;bx,cx-- A*B+C-540 mov ax, V ;ax= D
cwd ;dx,ax= D (扩展符号后为双字)
sub ax, cx
sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540)
idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax 存商,dx 存余数
;(1)xchg 的操作数不能是立即数
(2 不能对 CS 直接赋值
两个操作数不能都是存储单元
堆栈的操作数不能是字节量
adc 的操作数不能是段寄存器
没有确定是字节还是字操作
in 不支持超过 FFH 的直接寻址
out 只能以 AL/AX 为源操作数第二章(02)
2.11;
指令
AX 的值 CF
OF
SF
ZF
PF
Mov ax,1407h
1470h -
-
-
-
-
And ax,ax
1470h 0
0
0
0
0
Or ax,ax
1470h 0
0
0
0
0
Xor ax,ax
0 0
0
0
1
1
Not ax
0ffffh -
-
-
-
-
Test ax,0f0f0h
0ffffh 0
0
1
0
1
注意: 1. mov, not 指令不影响标志位
2. 其他逻辑指令使 CF=OF=0, 根据结果影响其他标志位。
指令注释执行结果 CF OF
指令
注释
执行结果 CF OF SF ZF PF
mov dx,bx mov cl,03h shl dx,cl sub dx,bx
add dx,si
dx=bx cl=03h dx=8*bx
dx=7*bx
dx=7*bx+3*ax
dx=0010h
-
dx=0080h dx=0070h
-
- -
0
0
dx=0088h
-
-
u
0
0
- - -
-
0
0
0
0
0
0
0
0
0 1
mov si,ax
si=ax
si=0008h
-
-
- - -
shl si,1
si=2*ax
si=0010h
0
0
0 0
0
add si,ax
si=3*ax
si=0018h
0
0
0 0
1
注意:
左移 N 次相当于乘于 2 的 N 次方,右左移 N 次相当于除乘于 2 的 N 次方。
移位指令根据是否移入“1”到 CF,设置 CF,根据移位后的结果影响 SF,ZF,PF。根据最高符号位是否改变设置 OF,如改变 OF=1.
‘ u ’表示无定义,‘ - ’表示无影响。
2.13; (1)
;不考虑进位 mov bl,al mov cl,3
shl
文档评论(0)