汇编语言程序设计第四版第2章课后答案汇编.docx
- 文档编号:3038980
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:20
- 大小:40.75KB
汇编语言程序设计第四版第2章课后答案汇编.docx
《汇编语言程序设计第四版第2章课后答案汇编.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计第四版第2章课后答案汇编.docx(20页珍藏版)》请在冰豆网上搜索。
汇编语言程序设计第四版第2章课后答案汇编
汇编语言程序设计第四版
【课后习题答案】--囮裑為檤
第2章8086的指令系统
〔习题2.1〕已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4CB765H,说明下列每条指令执行完后AX寄存器的内容。
(1)movax,1200h
(2)movax,bx
(3)movax,[1200h]
(4)movax,[bx]
(5)movax,[bx+1100h]
(6)movax,[bx+si]
(7)movax,[bx][si+1100h]
〔解答〕
(1)AX=1200H
(2)AX=0100H
(3)AX=4C2AH ;偏移地址=bx=0100h
(4)AX=3412H ;偏移地址=bx=0100h
(5)AX=4C2AH ;偏移地址=bx+1100h=1200h
(6)AX=7856H ;偏移地址=bx+si=0100h+0002h=0102h
(7)AX=65B7H ;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h
〔习题2.2〕指出下列指令的错误
(1)movcx,dl
(2)movip,ax
(3)moves,1234h
(4)moves,ds
(5)moval,300
(6)mov[sp],ax
(7)movax,bx+di
(8)mov20h,ah
〔解答〕
(1)两操作数类型不匹配
(2)IP指令指针禁止用户访问
(3)立即数不允许传给段寄存器
(4)段寄存器之间不允许传送
(5)两操作数类型不匹配
(6)目的操作数应为[SI]
(7)源操作数应为[BX+DI]
(8)立即数不能作目的操作数
〔习题2.3〕已知数字0~9对应的格雷码依次为:
18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。
请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。
leabx,table
moval,8
xlat
〔解答〕
leabx,table ;获取table的首地址,BX=200H
moval,8 ;传送欲转换的数字,AL=8
xlat ;转换为格雷码,AL=12H P35
〔习题2.4〕什么是堆栈,它的工作原则是什么,它的基本操作有哪两个,对应哪两种指令?
〔解答〕
堆栈是一种按“先进后出”原则存取数据的存储区域,位于堆栈段中,使用SS段寄存器记录其段地址;它的工作原则是先进后出;堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。
〔习题2.5〕已知SS=2200H、SP=00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?
movax,8057h
pushax
movax,0f79h
pushax
popbx
pop[bx]
〔解答〕
movax,8057h
pushax
movax,0f79h
pushax
popbx ;bx=0f79h
pop[bx] ;DS:
[0f79h]=8057h
〔习题2.6〕给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:
moval,89h
addal,al
addal,9dh
cmpal,0bch
subal,al
decal
incal
〔解答〕
moval,89h ;AL=89h CF ZF SF OF PF
addal,al ;AL=12h 1 0 0 1 1
;10001001
+10001001
100010010
addal,9dh ;AL=0afh 0 0 1 0 1
;00010010
+10011101
10101111
cmpal,0bch ;AL=0afh 1 0 1 0 1
;10101111
-10111100
*01000011
subal,al ;AL=00h 0 1 0 0 1
decal ;AL=0ffh 0 0 1 0 1
;00000000
-00000001
*11111111
incal ;AL=00h 0 1 0 0 1
;11111111
+00000001
*11111111
〔习题2.7〕设X、Y、Z均为双字数据,分别存放在地址为X、X+2;Y、Y+2;Z、Z+2的存储单元中,它们的运算结果存入W单元。
阅读如下程序段,给出运算公式。
movax,X
movdx,X+2
addax,Y
adcdx,Y+2
addax,24
adcdx,0
subax,Z
sbbdx,Z+2
movW,ax
movW+2,dx
〔解答〕
W=X+Y+24-Z
〔习题2.8〕请分别用一条汇编语言指令完成如下功能:
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。
(3)用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。
(4)用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。
(5)把数0A0H与AL寄存器的内容相加,并把结果送回AL中。
〔解答〕
(1)ADDDX,BX
(2)ADDAL,[BX+SI]
(3)ADD[BX+0B2H],CX
(4)ADDWORDPTR[0520H],3412H
(5)ADDAL,0A0H
〔习题2.9〕设X、Y、Z、V均为16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。
movax,X ;ax=X
imulY ;DX.AX=X*Y
movcx,ax ;cx=X*Y的低16位
moxbx,dx ;bx=X*Y的高16位
movax,Z ;ax=Z
cwd
addcx,ax ;cx=Z的低16位+X*Y的低16位
adcbx,dx ;bx=Z的高16位+X*Y的高16位+低位进位
subcx,540 ;cx=Z的低16位+X*Y的低16位-540
sbbbx,0 ;bx=Z的高16位+X*Y的高16位+低位进位-低位借位
movax,V ;ax=V
cwd
subax,cx ;ax=V的低16位-(Z的低16位+X*Y的低16位-540)
sbbdx,bx ;dx=V的高16位-(Z的高16位+X*Y的高16位+低位进位-低位借位)-低位借位
idivX;/X
〔解答〕
[V-(X*Y+Z-540)]/X
AX存商,DX存余数
〔习题2.10〕指出下列指令的错误:
(1)xchg[si],30h
(2)popcs
(3)sub[si],[di]
(4)pushah
(5)adcax,ds
(6)add[si],80h
(7)inal,3fch
(8)outdx,ah
〔解答〕
(1)xchg的操作数不能是立即数
(2)不应对CS直接赋值
(3)两个操作数不能都是存储单元
(4)堆栈的操作数不能是字节量
(5)adc的操作数不能是段寄存器
(6)没有确定是字节还是字操作
(7)in不支持超过FFH的直接寻址
(8)out只能以AL/AX为源操作数
〔习题2.11〕给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。
movax,1470h
andax,ax
orax,ax
xorax,ax
notax
testax,0f0f0h
〔解答〕
movax,1470h ;AX=1470HCF ZF SF OF PF
andax,ax ;AX=1470H0 0 0 0 0
;0001010001110000
orax,ax ;AX=1470H0 0 0 0 0
xorax,ax ;AX=0000H0 1 0 0 1
notax ;AX=FFFFH0 1 0 0 1
testax,0f0f0h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 第四 课后 答案 汇编