汇编语言课后习题答案郑晓薇.docx
- 文档编号:24819560
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:71
- 大小:34.06KB
汇编语言课后习题答案郑晓薇.docx
《汇编语言课后习题答案郑晓薇.docx》由会员分享,可在线阅读,更多相关《汇编语言课后习题答案郑晓薇.docx(71页珍藏版)》请在冰豆网上搜索。
汇编语言课后习题答案郑晓薇
习题一
1 别离将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数
,01110111,,00101111,
查看正确答案
无符号数:
=211=D3H,01110111=119=77H,=131=83H,
00101111=47=2FH,=170=AAH
带符号数:
=-45=D3H,01110111=+119=77H,=-125=83H,
00101111=+47=2FH,=-86=AAH
2 十六进制运算
1A52H+4438H,3967H-2D81H,37H×12H,1250H×4H
查看正确答案
5E8AH,0BE6H,3DEH,4940H
3 将十进制数变成8位补码,做运算(结果用二进制、十六进制、十进制表示)
29+53,73-24,-66+82,-102-15
查看正确答案
00011101+00110101=01010010=52H=82
01001001+=00110001=31H=49
+01010010=00010000=10H=16
+==8BH=-117
4 用紧缩BCD码计算(结果用二进制、BCD码、十进制表示)
29+53,73-24,66+18,132+75
查看正确答案
00101001+01010011=01111100+00000110==82H=82
01110011-00100100=01001111-00000110=01001001=49H=49
01100110+00011000=01111110+00000110==84H=84
00000000+01110101=00000001+00000110
=00000011=0207H=207
5 符号位扩展(字节扩展为字,字扩展为双字)
20A3H,94H,3456H,7FH,EC00H
查看正确答案
000020A3H,FF94H,00003456H,007FH,FFFFEC00H
6 若机械字长为16位,其无符号数表示范围是多少?
带符号数表示范围是多少?
别离用十进制和十六进制表示。
查看正确答案
无符号数:
0~65535,0000H~FFFFH;带符号数:
-32768~+32767,8000H~7FFFH
7 写出下列十六进制数所能代表的数值或编码:
(1)38H
(2)FFH(3)5AH(4)0DH
查看正确答案
(1)38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的紧缩BCD码
(2)FFH等于十进制数-1,是带符号数-1的补码,无符号数为255
(3)5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码
(4)0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码
8 将下列十进制数别离转换为二进制、十六进制、二进制补码、紧缩BCD码和ASCII码:
(1)108
(2)46(3)-15(4)254
查看正确答案
(1)108=01101100B=6CH,补码01101100B,紧缩BCD码00000000,ASCII码313038H
(2)46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H
(3)–15=B=F1H,补码B,ASCII码2D3135H
(4)254=00000000B=00FEH,补码00000000B,压缩BCD码00000000,ASCII码323534H
9 写出下列算式的二进制运算结果,标志位CF、SF、ZF、OF别离是什么值?
(1)56+63
(2)83-45(3)-74+29(4)-92-37
查看正确答案
(1)56+63=01110111B,CF=0,SF=0,ZF=0,OF=0
(2)83-45=00100110B,CF=0,SF=0,ZF=0,OF=0
(3)-74+29=B,CF=0,SF=1,ZF=0,OF=0
(4)-92-37=01111111B,CF=1,SF=0,ZF=0,OF=1
10 查表,指出ASCII码0DH、0AH、07H、1BH、20H、40H、50H、70H对应的控制字符。
查看正确答案
回车、换行、响铃、ESC键、空格键、@、P、p
习题二
1 写出冯·诺依曼运算机的大体特点。
2 如何解决内存速度与CPU速度不匹配问题。
3 写出运算机总线的分类与作用。
4 简述8086CPU寄放器的分组及各自的作用。
5 标志寄放器中都有哪些标志位与计算结果有关?
6 简述逻辑地址与物理地址的概念,二者的关系。
7 存储器为何要分段?
如何分段。
8 8086系统把存储器分为哪四种类型的段?
各自的特点是什么。
9 8086CPU的地址线为20根,寻址空间为1MB。
最少可划分为多少个逻辑段?
最多呢?
查看正确答案
最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)
10 在四种类型的段中通常利用哪些寄放器表示逻辑地址?
查看正确答案
CS:
IP,DS:
BX、SI、DI,ES:
BX、SI、DI,SS:
SP、BP
11 字节单元和字单元如何区分?
若给出一个地址,如何明白要访问的是字节单元仍是字单元?
查看正确答案
字节单元保留8位数,字单元保留16位数。
按照源操作数的属性肯定要访问的是字节单元仍是字单元。
12 偶地址单元和奇地址单元在保留数据上有区别吗?
查看正确答案
对于字节单元来讲,偶地址和奇地址一样;对于字单元而言,最好用偶地址保留,可减少CPU的访存次数。
13 有一个32K字节的存储区,首地址是3302:
5AC8H,写出其首单元和末单元的物理地址。
查看正确答案
首单元的物理地址=38AE8H,末单元的物理地址=38AE8H+7FFFH=40AE7H
14 什么是有效地址?
如何取得有效地址。
15 存储单元地址和内容表示如下,请画出存储单元寄存形式。
(1)(1280A)=3456H
(2)(20021H)=4DH(3)(33450H)=37A520D1H
16 按照逻辑地址计算出物理地址,并解释逻辑地址与物理地址的对应关系。
(1)2389:
3DE9H
(2)1230:
EC92H(3)14D9:
C202H
查看正确答案
(1)物理地址=27679H
(2)物理地址=20F92H(3)物理地址=20F92H
(2)和(3)的物理地址是一样的。
说明逻辑地址不唯一,多个逻辑地址可对应到同一个物理单元上。
17 给出段地址和偏移地址如下,计算出对应的物理地址。
(CS)=54C3H,(ES)=2569H,(DS)=1200H,(SS)=4422H,
(BX)=5678H,(SP)=9945H,(IP)=0E54H,(DI)=63B1H
查看正确答案
代码段CS:
IP的物理地址=55A84H堆栈段SS:
SP的物理地址=4DB65H
数据段DS:
BX的物理地址=17678H附加段ES:
DI的物理地址=2BA41H
18 已知堆栈区大小为512字节,栈底单元的物理地址为15230H。
将两个字入栈保留后,当前栈指针所指单元的物理地址是多少?
堆栈区中还能保留多少个数据?
查看正确答案
当前栈指针所指单元的物理地址是1522CH。
堆栈区中还能保留254个字。
19 写出修改当前数据段200H开始的数据区数据的DEBUG命令。
查看正确答案
执行E200
20 对当前代码段从100H开始反汇编的DEBUG命令是什么?
查看正确答案
执行U100
21 在DEBUG下,要将寄放器CX的值修改成100H,应该执行什么命令?
查看正确答案
执行RCX,然后输入100
22 在DEBUG下,如何将数据段的0号~4号字节单元填入'a'、'b'、'c'、'd'?
查看正确答案
执行EDS:
0‘a’‘b’‘c’‘d’
习题三
1 名词解释:
零地址指令,一地址指令,二地址指令。
2 别离写出与数据有关的7种寻址方式并举例说明。
3 已知(BX)=1290H,(SI)=348AH,(DI)=2976H,(BP)=6756H,(DS)=2E92H,(ES)=4D82H,(SS)=2030H,请指出下列指令的寻址方式,并求出有效地址EA和物理地址:
MOVAX,BX
MOVAX,1290H
MOVAX,[BX]
MOVAX,DS:
[1290H]
MOVAX,[BP]
MOV[DI][BX],AX
MOVES:
[SI],AX
查看正确答案
MOVAX,BX源操作数为寄放器寻址,EA无,物理地址无
MOVAX,1290H立即寻址,EA无,物理地址无
MOVAX,[BX]寄存器间接寻址,EA=1290H,物理地址=2FBB0H
MOVAX,DS:
[1290H]直接寻址,EA=1290H,物理地址=2FBB0H
MOVAX,[BP]寄存器间接寻址,EA=6756H,物理地址=26A56H
MOV[DI][BX],AX目的操作数为基址变址寻址,EA=3C06H,物理地址=32526H
MOVES:
[SI],AX寄存器间接寻址,EA=348AH,物理地址=50CAAH
4 寄放器间接寻址方式能够利用哪些寄放器作为间址寄放器?
5 当即寻址方式和寄放器寻址方式的操作数有物理地址吗?
6 什么是段超越?
段超越前缀代表什么?
7 请指出下列指令的错误:
MOVAX,[CX]
MOVAL,1200H
MOVAL,BX
MOV[SI][DI],AX
MOVES:
[DX],CX
MOV[AX],VALUE
MOVCOUNT,[SI]
查看正确答案
MOVAX,[CX]错。
CX不能为间址寄放器
MOVAL,1200H错。
立即数超出8位寄存器范围
MOVAL,BX错。
两个操作数不匹配
MOV[SI][DI],AX错。
两个变址寄存器不能在一起
MOVES:
[DX],CX错。
DX不能为间址寄存器
MOV[AX],VALUE错。
AX不能为间址寄存器
MOVCOUNT,[SI]错。
两个操作数不能都是存储单元
8 按照题目要求,写出相应的汇编指令:
(1)把BX寄存器的值传送给AX
(2)将立即数15送入CL寄存器
(3)用BX寄存器间接寻址方式将存储单元中的字与AX寄存器的值相加,结果在AX中
(4)把AL中的字节写入用基址变址寻址的存储单元中
(5)用SI寄存器和位移量VALUE的寄存器相对寻址方式,从存储单元中读出一个字送入寄存器AX
(6)将AX中的数与偏移地址为2000H存储单元的数相减,结果在AX中
查看正确答案
(1)MOVAX,BX
(2)MOVCL,15(3)ADDAX,[BX]
(4)MOV[BX+SI],AL(5)MOVAX,VALUE[SI](6)SUBAX,DS:
[2000H]
9 写出用下列寻址方式将存储单元X中的第3个字掏出,AX与其相加再放入Y单元的指令序列。
(1)直接寻址
(2)寄存器相对寻址(3)基址变址
查看正确答案
(1)ADDAX,[X+4]
MOVY,AX
(2)MOVBX,4
ADDAX,X[BX]
MOVY,AX
(3)MOVBX,4
MOVSI,OFFSETX
ADDAX,[BX+SI]
MOVY,AX
10 在数据寻址方式中,哪一种寻址方式的操作数与指令一路寄存在代码段?
查看正确答案
当即寻址方式中操作数(当即数)和指令一路寄存在代码段中。
习题四
1 汇编语言程序有什么特点?
什么是源程序?
2 简要说明从源程序到可执行程序的操作进程。
3 什么是伪指令?
汇编指令与伪指令有何区别?
写出4种常常利用的伪指令。
4 8086指令系统分为哪几类?
举例说明算术运算类指令的用法。
5 在8086汇编语言中,哪些段寄放器能够用MOV指令赋值,哪些段寄放器不允许?
6 堆栈段寄放器SS和栈指针SP能够修改吗?
如何修改?
7 入栈指令PUSH和出栈指令POP能够保留字节数据吗?
要保留的话,如何实现?
8 有哪些方式能够取得操作数的有效地址?
9 解释下列伪指令的作用:
(1)ASSUMECS:
CODE,DS:
DATA
(2)ENDSTART
(3)VALUEDW12,35,-6(4)STRINGDB‘INPUT:
’
(5)MESSDB5DUP(?
)(6)XXDDH
(7)ORG0320H(8)CONTEQU2*
10 按照题目,写出相关伪指令:
(1)定义数据段DATA,并在数据段中定义两个字单元X、Y,初始值都是0
(2)定义一个字符串SRING,保存’Computer’
(3)定义有100个字节单元的COUNT数组,初始值均为空
(4)用赋值伪指令定义PI为
(5)用类型操作符LABEL将VALUE单元定义为字节型
查看正确答案
(1)DATASEGMENT
XDW0
YDW0
DATAENDS
(2)STRINGDB’Computer’
(3)COUNTDB100DUP(?
)
(4)PIEQU
(5)VALUELABELBYTE
11 下列伪指令有错吗?
若是有错,请指犯错误原因:
(1)X1DB35H,0,-80
(2)X2DB35,260,-1(3)X3DB1234H
(4)X4DW100(5)X5DW100(?
)(6)X6DD‘AB’
查看正确答案
(1)对。
(2)错。
260超出了字节范围。
(3)错。
X3是字节型,1234H是字型,不匹配。
(4)对。
(5)错。
缺少DUP。
(6)对。
12 写出下列指令的执行结果:
TABLEDB3,33,33H
(1)MOVAL,TABLE
(2)MOVAX,WORDPTRTABLE
(3)MOVDX,OFFSETTABLE
(4)MOVCL,TABLE+2
(5)MOVBX,SEGTABLE
(6)MOVBX,TYPETABLE
(7)LEADX,TABLE
查看正确答案
(1)AL=3。
(2)AX=2103H。
(3)DX=TABLE的偏移地址。
(4)CL=33H
(5)BX=TABLE的段地址。
(6)BX=1。
(7)DX=TABLE的偏移地址。
13 写出指令序列,别离求两个双精度数20125D68H和100349A6H的相加和相减运算。
查看正确答案
MOVDX,2012H
MOVAX,5D68H
MOVCX,1003H
MOVBX,49A6H
ADDAX,BX(SUBAX,BX)
ADCDX,CX(SBBDX,CX)
14 写出将DX、AX中的32位无符号数减CX中的16位无符号数,结果寄存在DX、AX中的指令序列。
查看正确答案
SUBAX,CX
SBBDX,0
15 写出将extra段的段地址传送给ES寄放器的指令序列。
查看正确答案
MOVAX,extra
MOVES,AX
16 按照给出的算式,写出指令序列(设X、Y、W为字节型,Z为字型):
(1)Z=5(X+16)
(2)Z=X/4-Y
(3)Z=8X+Y/16-W^2
(4)Z=(X+Y)(X-Y)-X/Y
查看正确答案
(1)MOVAL,16
ADDAL,X
MOVBL,5
IMULBL
MOVZ,AX
(2)MOVBL,4
MOVAL,X
IDIVBL
SUBAL,Y
MOVZ,AX
(3)MOVAL,X
MOVBL,8
IMULBL
MOVDX,AX
MOVAH,0
MOVAL,Y
MOVBL,16
IDIVBL
CBW
ADDDX,AX
MOVAH,0
MOVAL,W
IMULAL
SUBDX,AX
MOVZ,DX
(4)MOVAL,X
ADDAL,Y
MOVBL,X
SUBBL,Y
MOVAH,0
IMULBL
MOVZ,AX
MOVAL,X
IDIVY
CBW
SUBZ,AX
17 分析下列程序段执行情形,给出结果:
XDB5,15,30
YDB22,14,6
ZDW?
……
MOVBX,OFFSETX
MOVAL,[BX]
ADDAL,Y
INCBX
SUBAL,[BX]
MOVBL,Y+1
IMULBL
MOVZ,AX
查看正确答案
Z=(5+22-15)*14=168
18 源程序在汇编进程中,系统是如何获知程序从哪儿开始执行的?
查看正确答案
从伪指令ENDSTART处获知程序从START标号开始。
19 两个数8576H和9988H,别离作减法和加法运算,写出指令及运算结果。
运算结果影响哪些标志?
查看正确答案
(1)减法:
(2)加法:
MOVAX,8576H MOVAX,8576H
MOVBX,9988H MOVBX,9988H
SUBAX,BX ADDAX,BX
结果:
AX=EBEEH 结果:
AX=1EFEH
CF=1,OF=0,ZF=0,SF=1 CF=1,OF=1,ZF=0,SF=0
20 乘法和除法指令对于字和字节操作是如何进行的?
21 写出指令,用紧缩BCD码实现下列运算:
(1)Y1=56+34
(2)Y2=128-35
(3)Y3=68+23-45
查看正确答案
(1)MOVAL,56H
MOVBL,34H
ADDAL,BL
DAA
MOVY1,AL
(2)MOVAX,128H
MOVBX,35H
SUBAX,BX
DAS
MOVY2,AL
(3)MOVAL,68H
MOVBL,23H
ADDAL,BL
MOVBL,45H
SUBAL,BL
DAS
MOVY3,AL
22 写出指令,用非紧缩BCD码实现下列运算:
(1)Z1=78+46
(2)Z2=95-27
(3)Z3=12×6-33
(4)Z4=(74+18)/6
查看正确答案
(1)MOVAX,0708H
MOVBX,0406H
ADDAL,BL
ADDAH,BH;不用带进位加
AAA;加法调整,含进位调整
MOVBX,AX
XCHGAH,AL;高4位调整
AAA
MOVBH,AL
MOVZ1,BX;保存十位、各位,百位在CF中
(2)MOVAX,0905H
MOVBX,0207H
SUBAL,BL
SUBAH,BH;不用带借位减
AAS;减法调整
MOVZ2,AX
(3)MOVAX,0102H
MOVBX,0006H
MULBX;乘法先不用调整
MOVBX,0303H
SUBAX,BX
AAS;减法调整
MOVZ3,AX
(4)MOVAX,0704H
MOVBX,0108H
ADDAL,BL
ADDAH,BH
AAA;加法调整
MOVBL,6
AAD;除法调整
DIVBL
MOVBH,AH;余数保存在BH
ANDAX,000FH
AAA;商调整
MOVZ4,AX;保存商
23 编程序。
从键盘输入一个数字,去掉ASCII码后保留到BUFF单元。
查看正确答案
.modelsmall
.data
buffdb?
.code
start:
movax,@data
movds,ax
movah,1;键盘输入
int21h
subal,30h;去掉ASCII码
movbuff,al
movah,4ch
int21h
endstart
24 编程序。
将键盘输入的小写字母变成大写字母显示在屏幕上。
查看正确答案
.modelsmall
.code
start:
movah,1;键盘输入
int21h
subal,20h;变为大写
movdl,al
movah,2
int21h
movah,4ch
int21h
endstart
25 X和Y都是字节型数据,编写将两数相加的结果显示出来的程序段。
查看正确答案
.modelsmall
.data
xdb12h
ydb34h
.code
start:
movax,@data
movds,ax
moval,x
addal,y;结果为46H
movah,al;AH=46H
andal,0fh;AL=06H
movcl,4
rolah,cl;AH=64H
andah,0fh;AH=04H
addax,3030h;AX=3436H
movbx,ax
movdl,bh;显示4
movah,2
int21h
movdl,bl;显示6
int21h
movah,4ch
int21h
endstart
26 编写程序,成立一个0~9的平方根表,查表可得某数的平方根。
查看正确答案
datasegment
xdb'','','','',''
db'','','','','';建立字符表
ydb5dup(?
);存放查到平方根
udb3;要查的数
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
moval,u;要查的数
movcl,5
mulcl;u*5=15(号单元开始)
movah,0
movbx,ax;地址保存到bx
movsi,0
let1:
moval,x[bx];取出平方根数字
movy[si],al;存入y
incsi
incbx
looplet1;循环取出5次
movah,4ch
int21h
codeends
endstart
27 编写查表程序。
成立一个班级姓名表,给出学号,可显示出其姓名。
查看正确答案
.modelsmall
.data
x1db'zhangyan$';姓名为10个字符宽度
x2db'lili$'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 课后 习题 答案 郑晓薇