汇编语言课后习题答案 郑晓薇Word文档格式.docx
- 文档编号:18929608
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:61
- 大小:34.19KB
汇编语言课后习题答案 郑晓薇Word文档格式.docx
《汇编语言课后习题答案 郑晓薇Word文档格式.docx》由会员分享,可在线阅读,更多相关《汇编语言课后习题答案 郑晓薇Word文档格式.docx(61页珍藏版)》请在冰豆网上搜索。
(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
习题二
写出冯·
诺依曼计算机的基本特点。
如何解决内存速度与CPU速度不匹配问题。
写出计算机总线的分类与作用。
简述8086CPU寄存器的分组及各自的作用。
标志寄存器中都有哪些标志位与计算结果有关
简述逻辑地址与物理地址的概念,两者的关系。
存储器为什么要分段如何分段。
8086系统把存储器分为哪四种类型的段各自的特点是什么。
、
8086CPU的地址线为20根,寻址空间为1MB。
最少可划分为多少个逻辑段最多呢
最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)
在四种类型的段中通常使用哪些寄存器表示逻辑地址
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’
习题三
名词解释:
零地址指令,一地址指令,二地址指令。
分别写出与数据有关的7种寻址方式并举例说明。
已知(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
[1290H]直接寻址,EA=1290H,物理地址=2FBB0H
MOVAX,[BP]寄存器间接寻址,EA=6756H,物理地址=26A56H
MOV[DI][BX],AX目的操作数为基址变址寻址,EA=3C06H,物理地址=32526H
[SI],AX寄存器间接寻址,EA=348AH,物理地址=50CAAH
寄存器间接寻址方式可以使用哪些寄存器作为间址寄存器
立即寻址方式和寄存器寻址方式的操作数有物理地址吗
什么是段超越段超越前缀代表什么
请指出下列指令的错误:
MOVAX,[CX]
MOVAL,1200H
MOVAL,BX
MOV[SI][DI],AX
[DX],CX
MOV[AX],VALUE
MOVCOUNT,[SI]
MOVAX,[CX]错。
CX不能为间址寄存器
MOVAL,1200H错。
立即数超出8位寄存器范围
MOVAL,BX错。
两个操作数不匹配
MOV[SI][DI],AX错。
两个变址寄存器不能在一起
[DX],CX错。
DX不能为间址寄存器
MOV[AX],VALUE错。
AX不能为间址寄存器
MOVCOUNT,[SI]错。
两个操作数不能都是存储单元
\
根据题目要求,写出相应的汇编指令:
(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]
写出用下列寻址方式将存储单元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]
在数据寻址方式中,哪种寻址方式的操作数与指令一起存放在代码段
立即寻址方式中操作数(立即数)和指令一起存放在代码段中。
习题四
汇编语言程序有什么特点什么是源程序
简要说明从源程序到可执行程序的操作过程。
什么是伪指令汇编指令与伪指令有何区别写出4种常用的伪指令。
8086指令系统分为哪几类举例说明算术运算类指令的用法。
在8086汇编语言中,哪些段寄存器可以用MOV指令赋值,哪些段寄存器不允许
堆栈段寄存器SS和栈指针SP可以修改吗如何修改
入栈指令PUSH和出栈指令POP可以保存字节数据吗要保存的话,如何实现
有哪些方法可以获得操作数的有效地址
解释下列伪指令的作用:
(1)ASSUMECS:
CODE,DS:
DATA
(2)ENDSTART
(3)VALUEDW12,35,-6(4)STRINGDB‘INPUT:
’
(5)MESSDB5DUP()(6)XXDDH
(7)ORG0320H(8)CONTEQU2*
根据题目,写出相关伪指令:
(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
下列伪指令有错吗如果有错,请指出错误原因:
(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)对。
写出下列指令的执行结果:
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的偏移地址。
写出指令序列,分别求两个双精度数20125D68H和100349A6H的相加和相减运算。
!
MOVDX,2012H
MOVAX,5D68H
MOVCX,1003H
MOVBX,49A6H
ADDAX,BX(SUBAX,BX)
ADCDX,CX(SBBDX,CX)
写出将DX、AX中的32位无符号数减CX中的16位无符号数,结果存放在DX、AX中的指令序列。
SUBAX,CX
SBBDX,0
写出将extra段的段地址传送给ES寄存器的指令序列。
MOVAX,extra
MOVES,AX
根据给出的算式,写出指令序列(设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
(3)MOVAL,X
MOVBL,8
MOVDX,AX
MOVAH,0
MOVAL,Y
MOVBL,16
CBW
ADDDX,AX
MOVAL,W
IMULAL
SUBDX,AX
MOVZ,DX
(4)MOVAL,X
ADDAL,Y
MOVBL,X
SUBBL,Y
IDIVY
SUBZ,AX
%
分析下列程序段执行情况,给出结果:
XDB5,15,30
YDB22,14,6
ZDW?
……
MOVBX,OFFSETX
MOVAL,[BX]
INCBX
SUBAL,[BX]
MOVBL,Y+1
Z=(5+22-15)*14=168
源程序在汇编过程中,系统是如何获知程序从哪儿开始执行的
从伪指令ENDSTART处获知程序从START标号开始。
两个数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
乘法和除法指令对于字和字节操作是如何进行的
!
写出指令,用压缩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
MOVBL,45H
SUBAL,BL
MOVY3,AL
写出指令,用非压缩BCD码实现下列运算:
(1)Z1=78+46
(2)Z2=95-27
(3)Z3=12×
6-33
(4)Z4=(74+18)/6
(1)MOVAX,0708H
MOVBX,0406H
ADDAH,BH;
不用带进位加
AAA;
加法调整,含进位调整
MOVBX,AX
XCHGAH,AL;
高4位调整
AAA
MOVBH,AL
MOVZ1,BX;
保存十位、各位,百位在CF中
(2)MOVAX,0905H
MOVBX,0207H
SUBAH,BH;
不用带借位减
AAS;
减法调整
MOVZ2,AX
(3)MOVAX,0102H
MOVBX,0006H
MULBX;
乘法先不用调整
MOVBX,0303H
MOVZ3,AX
(4)MOVAX,0704H
MOVBX,0108H
ADDAH,BH
加法调整
MOVBL,6
AAD;
除法调整
DIVBL
MOVBH,AH;
余数保存在BH
ANDAX,000FH
商调整
MOVZ4,AX;
保存商
23
编程序。
从键盘输入一个数字,去掉ASCII码后保存到BUFF单元。
.modelsmall
.data
buffdb?
.code
start:
movax,@data
movds,ax
movah,1;
键盘输入
int21h
subal,30h;
去掉ASCII码
movbuff,al
movah,4ch
endstart
24
将键盘输入的小写字母变为大写字母显示在屏幕上。
subal,20h;
变为大写
movdl,al
movah,2
25
X和Y都是字节型数据,编写将两数相加的结果显示出来的程序段。
xdb12h
ydb34h
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
movdl,bl;
显示6
26
编写程序,建立一个0~9的平方根表,查表可得某数的平方根。
datasegment
xdb'
'
'
db'
;
建立字符表
ydb5dup();
存放查到平方根
udb3;
要查的数
dataends
codesegment
assumecs:
code,ds:
data
movax,data
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次
codeends
27
编写查表程序。
建立一个班级姓名表,给出学号,可显示出其姓名。
^
x1db'
zhangyan$'
姓名为10个字符宽度
x2db'
li
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言课后习题答案 郑晓薇 汇编语言 课后 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)