IBMPC汇编语言程序设计第二版课后习题答案清华大学出版社Word文件下载.docx
- 文档编号:20906532
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:32
- 大小:30.89KB
IBMPC汇编语言程序设计第二版课后习题答案清华大学出版社Word文件下载.docx
《IBMPC汇编语言程序设计第二版课后习题答案清华大学出版社Word文件下载.docx》由会员分享,可在线阅读,更多相关《IBMPC汇编语言程序设计第二版课后习题答案清华大学出版社Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
6---L
1--M
15--N
14--O
第三章
1.
(1)立即寻址
没有
(2)直接寻址
7237H
(3)使用BX的寄存器寻址
没有
(4)使用BX的间接寻址
637DH
(5)使用BX的寄存器相对寻址
0D5B4H
(6)基址变址寻址
8E18H
(7)相对基址变址
004FH
2.根据下列要求,写出相应的汇编指令。
(1)ADD
DX,BX
(2)ADDAL,[BX][SI]
(3)
ADD[BX][0B2H],CX
(4)MOV
AX,2A59H
ADD[0524H],AX
(5)ADDAL,0B5H
3.
(1)寄存器间接寻址
MOVBX,OFFSET[BLOCK][0AH]
MOV
DX
[BX]
(2)寄存器相对寻址
MOV
SI,OAH
MOVDX,[BLOCK][SI]
(3)基址变址寻址
MOVBX,BLOCK
MOVSI,OAH
MOVDX,[BX][SI]
4.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。
(1)MOV
AX,1200H
1200H
(2)MOV
AX,BX
0100H
(3)MOV
AX,[1200]
4C2AH
注意,是字单元!
!
(4)MOV
AX,[BX]
3412H
同上
(5)MOV
1100[BX]
4C2AH
(6)MOV
AX,[BX][SI]
7856H
(7)MOV
AX,1100[BX][SI]
65B7H
5.
(1)7CD9H
(2)
0600H
(3)098AH
6.
BX,2000H
LES
DI
[BX]
AX,ES:
7.转向地址OBJ的值分别为:
(1)064DH
(2)0691H
(3)05E0H
注意有符号数的符号位
8.
(1)MOV
AX,0ABH
立即数寻址
无物理地址
(2)MOV
寄存器寻址
同上
(3)MOV
AX,[100]
直接寻址
20100H
(4)MOVAX,VAL
直接寻址
20050H
(5)MOVAX,[BX]
寄存器间接寻址
20100H
(6)MOV
AX,ES:
[BX]
21100H
(7)MOVAX,[BP]
寄存器间接寻址
20010H
(8)MOVAX,[SI]
同上
200A0H
(9)MOVAX,[BX+10]
寄存器相对寻址
20110H
(10)MOVAX,VAL[BX]
同上
20150H
(11)MOVAX,[BX][SI]
基址变址寻址
201A0H
(12)MOVAX,VAL[BX][SI]
相对基相变址寻址
201F0H
9.
(1)的指令:
MOVAX,[BX][0CH]
ZREO,AX
(2)的指令:
AX,ARRAY[BX]
MOVZREO,AX
10.
MOVAX,TABLE
是把符号地址TABLE里的内容送到AX里,指令执行完后,(AX)=1234H
LEAAX,TABLE
是把符号地址TABLE的有效地址(这里是偏移量)送到指定寄存器AX里,指令执行完后,(AX)=0032H
11.执行完指令后,(AX)=1E00H
12.LEAAX,CSTRING
MOVDL,AX
MOVDH,[AX+6]
13.课本上P51--P53
14.LESBX,[2000]
MOVAX,ES:
[BX]
一条指令的话为MOVAX,ES:
[8000H]
15.运算结果
SF,ZF,CF,OF各位的值(从左至右依次往下)
(1)74D4H
0
0
(2)A5C1H
1
1
4240H
1
0
(4)0000H
0
16.接上表
(1)
5D14
A870
(3)D870
(4)34E4
17.
(1)MOVAX,Z
;
把Z送到AX
SUBAX,X
Z-X
ADDAX,W
W+(Z-X)
MOVZ,AX
结果保存在Z中
(2)MOVAX,R
;
R送到AX中
ADDAX,9
R+9
MOVBX,X
X送到BX中
ADDBX,6
X+6
ADDAX,BX;
(R+9)+(X+6),结果保存在AX中
MOVBX,W
W送到BX中
SUBBX,AX;
W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和
MOVZ,BX
最终结果送到Z中
(3)
MOVAX,W
;
把W送到AX
IMULX
W*X
注意:
低十六位保存在AX里,高十六位保存在DX里
MOVBX,Y
把Y送到BX里
ADDBX,6
Y+6
IDIVBX
(W*X)/(Y+6)
商保存在AX里,余数保存在DX里
MOVZ,AX
把商送到Z中,
MOVR,DX
把余数送到R中
(4)
MOVAX,W
把W送到AX中
SUBAX,X
W-X
CWD
把AX中的十六位带符号数扩展成为32位,低十六位保存在AX中,高十六位保存在DX中
MOVBX,5
把5送到BX中
(W-X)/5
被除数为32位,除数为16位
商为16位
IMULY
上一步结果再乖以Y,积为32位
MOVBX,2
把2送到BX中
IMULBX
上一步乘法所得的积再乘以2,各为64位
MOVZ,EAX
把结果中低32位放入Z双字单元中
MOV[Z+4],EDX
把结果中高32位放入Z+4双字单元中
18.
指令
本条指令执行完后AX的内容
执行完后CF,SF,ZF的值
MOVAX,1234H
1234H
MOVCL,4
1234H
0
ROLAX,CL
2341H
DECAX
2340H
MOVCX,4
MULCX
8918H
INT20H
程序结束后,(AX)=8918H
(DX)=0000H
19.
执行完后AX的内容
执行完后CF,SF,ZF和OF的值
MOVAX,0
0010
FFFFH
0100
ADD
7FFEH
0000
ADDAX,2
8000H
0101
NOTAX
7FFFH
SUB
AX,0FFFFH
1101
ADDAX,8000H
0000H
1011
AX,1
FFFFH
1101
ANDAX,58D1H
58D1H
0000
SALAX,1
B1A2H
SARAX,1
D8D1H
0100
NEGAX
272FH
1000
RORAX,1
9397H
1001
20.
(1)MOVAX,DATAX
ADDDATAY,AX
(2)MOVAX,DATAX
AX,[DATAX+2]
ADD[DATAY+2],AX
(3)本組指令的作用是:
BX<
------[DATAX]+[DATAY]+[1](CF的值)
帶進位加法~
AX,DATAX
MUL
DATAY
結果的高十六位保存在DX裏,低十六位保存在AX裏
(5)MOVAX,DATAX
MOVDX,[DATAX+2]
MUL
DWORDDATAY
結果的高三十二位保存在EDX裏,低三十二位保存在EAX裏
(6)MOVAX,DATAX
DIV
17H
結果商保存在AL中,余數在AH中
(7)MOVAX,DATAX
CDW
DATAY
21.NEGDX
NEGAX
SBBDX,0
22.
MOVAX,A
把雙字長數的低字放到AX中
MOVDX,[A+2]
把雙字長數的高字放到DX中
TESTDX,8000H
測試雙字長數的符號
JZ
RIGHT
如果是非負數,則直接保存
NEGDX
如果是負數,則求補
NEGAX
SBBDX,0
RIGHT:
MOVB,AX
MOV[B+2],DX
23.每條指令單獨執行完後的結果依次為:
(1)9AH
(2)61H
(3)0FBH(4)1CH
(5)0
(6)0E3H
24.執行指令序列後,BX的內容為:
0DAH
25.
(1)把53D乘以2的程序:
MOVAX,35H
53D=35H
SHLAX,1
(2)把53除以2的程序:
MOVAX,35H
SHRAX,1
26.這段程序完成的功能是:
把DX:
AX中的雙字數據左移4位(相當於乘以16D)
27.各條指令單獨執行後,DX的值依次為:
(1)5CH
(2)17H(3)05C8H(4)72H(5)2017H(6)0CDH(7)0172H(8)05CCH(9)0DCH
28.該程序段執行完後,BX寄存器的內容是:
C02DH
29.
(1)从左到右把CONMAE中的字符串伟送到PRLINE的程序实现:
LEASI,CONAME
把CONAME中第一个字节的偏移地址送到SI中
LEADI,PRLINE
把PRLINE中第一个字节的偏移地址送到DI中
MOVCX,20
把重复次数放到CX里
CLD
让SIDI从低地址指向高地址(即从左到右传送)
REP
MOVSB
传送
(2)从右到左把CONMAE中的字符串传送到PRLINE中的程序实现:
LEASI,CONAME
LEADI,PRLINE
MOVCX,20
STD
和上面唯一不同的就是这次是从右到左,所以要从高地址批向低地址
REPMOVSB
(3)把CONAME中的第三和第四個字節裝入AX的程序實現:
LEASI,[CONAME+3]
LODSW
(4)把AX寄存器的內容存入從PRLINE+5開始的字節中的程序實現:
LEADI,[PRLINE+5]
STOSW
(5)檢查CONAME字符串中有無空格字符,如有把它偉送給BH寄存器的程序實現:
LEADI,CONAME
把CONAME中第一個字符偏移地址放入DI中
把重複次數放到CX中
MOVAL,20H
把空格符的ASCII值放入AL中
從低到高
REPNE
SCASB
比較
MOVBH,[DI-1]R
把檢查到的空格符送到BH中
30.
MOVCX,12H
把重複次數放到CX中。
這裏用十六進制表示
MOVSI,0
初始化SI
MOVAX,26H
把&
字符的ASCII值放入AX
CHECK:
CMPAX,STRING[SI]
依次查找
INCSI
LOOPNE
CHECK
找到了就退出
MOVAX,20H
把空格符的ASCII值勤放入AX中
MOVSTRING[SI-1],AX
用空格符代替&
31.
(1)用空格符清除PRINT_LINE域的程序实现:
MOVAL,20H
LEADI,PRINT_LINE
MOV
CX,132
CLD
REPSTOSB
(2)在STUDENT_ADDR中查找第一个“_”的程序实现:
MOVAX,2DH
把“—”的ASCII值放入AX
MOVCX,9
把重複次數放入CX中
依次檢查STUDENT-ADDR中的字符是否為“_”,找到第一个停下来
CMPAX,STUDENT_ADDR[SI]
INCSI
LOOPNZCHECK
(3)在STUDENT_ADDR中查找最后一个“_”的程序实现:
和第二題不同的就是這次是從右到左查詢,所以SI的初始化為9
MOVAX,2DH
MOVSI,9
MOVCX,9
CHECK:
CMPAX,STUDENT_ADDR[SI]
DECSI
(4)程序實現:
MOVAL,2OH
LEADI,STUDENT_NAME
把STUDENT_NAME中第一个字符偏移地址放到DI中
MOVCX,30
把重复次数放到CX中
让DI从低位移到高位
REPZSCASB
如果有不是空格符的,就退出
STORE
如果全是空格符,就转到STORE中
用*代替空格
STORE:
MOVAL2AH
MOVCX,30
注意,这里是把前面从低到高移动的DI再从高到低移上去
(5)程序实现:
把STUDENT_NAME移到PRINT_LINE的前30个字节中
LEASI,STUDENT_NAME
LEADI,PRINT_LINE
把STUDENT_ADDR移到PRINT_LINE的后9个字节中
LEASI,[STUDENT_ADDR+9]
LEADI,[PRINT_LINE+132]
MOVCX,9
STD
32.程序实现:
…
LEA
SI,OLDS
LEADI,NEWS
MOVCX,5
REPZ
CMPSB
JNZ
NEW_LESS
33.
(1)CMP
DX,CX
JA
EXCEED
(2)CMPBX,AX
JG
EXCEED
(3)CMPCX,0
JZ
ZERO
(4)CMPBX,AX
JO
OVERFLOW
(5)CMPBX,AX
JLE
EQ_SMA
(6)
CMPDX,CX
JBE
EQ_CX
34.
(1)跳转到:
L1
(2)跳转到L1
(3)跳转到L2
(4)跳转到L5
(5)跳转到L5
35.
(1)可以引起转移到L1的指令有:
NB
,BE,NL,LE
(2)可以引起转移到L1的指令有:
(3)可以引起转移到L1的指令有:
B,BE,L,LE
(4)可以引起转移到L1的指令有:
,NBE,NL,NLE
(5)可以引起转移到L1的指令有:
(6)可以引起转移到L1的指令有:
同(3)
(7)可以引起转移到L1的指令有:
同上
37.
MOVAL,STAUS[SI]
把要测试的字节放到AL中
ANDAL,2AH
把第一,三,五位为一其他位为0的数--2AH,与这个字节比较,结果放到AL中
JZROUTINE_4
如果结果为0,则三位都为0
XORAL,2AH
前面相与的结果再与2AH异或
JZROUTINE_1
如果结果为0,则三位都为1
BSFBL,AL
BSRBL,AL
CMPBL,CL
如果向前和向后测试后,第一个1的位置相同,说明只有一个1,则异或运算前有AL中有两个1
JEROUTINE_2
ROUTINE_1
38.
(1)当括号内是:
LOOP时,循环四次,程序结束后
(AX)=05
(BX)=
16
(CX)=0(DX)=0
(2)当括号内是:
LOOPE时,不循环,程序结束后
(AX)=02(BX)=04(CX)=03(DX)=02
(3)当括号内是:
LOOPNE时:
循环三次,程序结束后
(AX)=04(BX)=11(CX)=01(DX)=0
39.P101
40.
(1)00003100H
(2)5100H
(3)7100H
41.
(1)目的地址:
2004H
内容依次为:
56H
F4H
23H
98H
(2)目的地址:
384CH
91H
34H
F2H
01H
(3)目的地址:
寄存器,无物理地址~
92H
6DH
A2H
4CH
42.
(1)PUSHAX
(SP)<
------(SP)-2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IBMPC 汇编语言 程序设计 第二 课后 习题 答案 清华大学出版社