汇编语言程序设计答案.docx
- 文档编号:3126655
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:73
- 大小:98.52KB
汇编语言程序设计答案.docx
《汇编语言程序设计答案.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计答案.docx(73页珍藏版)》请在冰豆网上搜索。
汇编语言程序设计答案
《汇编语言程序设计教程》人民邮电出版社2013
习题及参考答案
1.1什么是机器语言?
什么是汇编语言?
简述汇编语言的特点。
机器语言就是用二进制编码组成的机器指令的集合和一组使用机器指令的规则。
汇编语言是对机器指令中的操作码用英文单词的缩写描述,对操作数用标号、变量、常量描述。
汇编语言的特点:
(1)与机器有关:
移植性差,但可直接控制硬件。
(2)程序效率高。
(3)局限性:
受指令的限制,如考虑存储单元等。
(4)调试困难。
1.2汇编程序与汇编源程序的区别是什么?
汇编源程序是指用汇编语言编写的程序,而汇编程序特指将汇编源程序汇编成目标文件的编译程序。
1.3把下列十进制数转换为二进制数和十六进制数。
(1)67
(2)34(3)254(4)123
答:
(1)1000011,43
(2)100010,22
(3)11111101,FE(4)1111011,7B
1.4把下列二进制数转换为十六进制数和十进制数。
(1)01101101
(2)10110010(3)111111
答:
(1)6D,109
(2)B2,178,(3)3F,63
1.5作下列十六进制数的运算,并转换为十进制数校核。
(1)5A+64
(2)86-49(3)123-9A(4)43×2B
答:
(1)BE
(2)3D(3)89(4)B41
1.6根据补码定义把下列十进制数表示为8位二进制补码。
(1)64
(2)-24
答:
(1)01000000
(2)[10011000]原=[11101000]补
1.7下列各数均为十进制数,请采用8位二进制补码运算,并回答标志寄存器FLAGS中CF和OF的值,运算结果所代表的十进制数是多少?
如果用16位二进制补码运算,其结果所代表的十进制数是多少?
FLAGS中CF和OF的值呢?
(1)85+69
(2)85+(-69)(3)85-(-69)(4)85-(69)
答:
85=55H,69=45H,-69=BBH,
8位二进制补码运算:
(1)85+69=55H+45H=9AH=154,CF=0,OF=1
(2)85+(-69)=55H+BBH=10H=16,CF=1,OF=0
(3)85-(-69)=55H-BBH=9AH=154,CF=1,OF=1
(4)85-(69)=55H-45H=10H=16,CF=0,OF=0
16位二进制补码运算:
85=0055H,69=0045H,-69=0FFBBH,
(1)85+69=0055H+0045H=009AH=154,CF=0,OF=0
(2)85+(-69)=0055H+0FFBBH=0010H=16,CF=1,OF=0
(3)85-(-69)=0055H-0FFBBH=009AH=154,CF=1,OF=0
(4)85-(69)=0055H-0045H=0010H=16,CF=0,OF=0
1.8简述计算机系统组成。
答:
计算机由中央处理器CPU,存储器,输入系统,输出系统组成,由系统总线连接在一起。
CPU包括运算器和控制器,运算器执行指令,控制器负责计算机的控制。
存储器是计算机的记忆部件,以二进制形式存放程序和数据。
输入输出系统包括大容量存储器,如硬盘,以及其他外设,如鼠标,键盘,显示器等。
1.9简述16位机的各类寄存器的主要作用。
答:
(1)数据寄存器:
Ax,Bx,Cx,Dx;AX:
作为累加器,是算术运算的主要寄存器。
在乘除等指令中存放操作数,在I/O指令中使用它与外部设备传送信息。
BX:
当通用寄存器使用,在计算存储器地址时,作基址寄存器使用。
CX:
当通用寄存器使用,此外常用来保存计数值,当计数器使用。
DX:
当通用寄存器使用,一般在作双字长运算时把DX和AX组合使用,对某些I/O操作,DX用来存放I/O的端口地址。
(2)地址寄存器:
Sp,Bp,Si,Di
(3)段寄存器:
Cs,Ds,Es,Ss;段寄存器的作用是专用于存储器寻址,用来直接或间接地存放段地址。
(4)专用寄存器:
Ip,Flags;Ip寄存器专门存放下一条指令的地址,Flags标志寄存器,又称程序状态寄存器。
它是存放条件码标志、控制标志和系统标志的寄存器。
1.10实模式下,写出段地址和偏移地址为1234:
2002、1430:
0042、FF00:
0FFF的物理地址。
答:
1234:
2002=12340+2002=14342
1430:
0042=14300+0042=14342
FF00:
0FFF=FF000+0FFF=FFFFF
1.11
52506=50000+2506,=52500+0006,基地址最大为5250,最小为5000.
段地址取值范围:
0000—FFFF。
既65536个。
1.12从物理地址为00100H开始到00103H单元中顺序存放的数据为:
12H,34H,56H,78H。
请画出数据存放示意图,并回答以下问题:
(1)写出00101H字节单元的内容
(2)写出00102H字单元的内容
答案:
(1)(00101)=34H
(2)(00102)=7856H
习题2
2.1写出从汇编语言源程序的建立到产生可执行文件的步骤和上机操作命令。
答:
(1)用编辑程序EDIT建立.ASM源文件
(2)用汇编程序MASM把.ASM文件原文件汇编成.OBJ文件
(3)用连接程序LINK将.OBJ文件转换成.EXE文件
(4)在DOS下直接运行.EXE文件或在DEBUG下调试该.EXE文件
2.2列表文件.LST是在什么阶段产生的?
列表文件.LST中有哪些内容?
答:
*.LST在汇编得到*.obj的同时得到,列表文件报告了汇编过程中产生的很多有价值的参考信息。
主要包括源程序和机器语言清单、指令和变量的偏移地址等等。
2.3写出定义一个代码段的语句,段名为MYPRG。
答:
MYPRGsegment
Assumecs:
MYPRG
start:
MYPRGends
Endstart
2.4程序中用什么语句来结束程序的执行?
用什么语句来表示程序的结束和指出程序执行的起点?
答:
程序的结束:
movah,4ch
int21h
程序的结束和指出执行的起点:
Endstart
2.5汇编语言源程序的文件扩展名是什么?
把它改为.EXE扩展名后,可以认为是可执行程序吗?
答:
源程序的文件扩展名为*.asm,改扩展名不可以执行。
2.6列出子目录C:
\YOUPRG下的扩展名为.ASM的所有文件,在D盘根目录下建立一个子目录MYPRG,并进入子目录MYPRG,再把C:
\YOUPRG下的文件YOU.ASM复制到D:
\MYPRG下。
写出完成以上要求的DOS命令。
答:
(1)列出子目录:
C:
\YOUPRG>dir*.asm
(2)建立子目录:
D:
\>MDMYPRG
(3)复制:
C:
\YOUPRG>copyYOU.asmD:
\MYPRG
2.7下图为DEBUG调入的可执行程序,回答以下问题:
(1)程序的起始物理地址是多少?
结束地址是多少?
(2)CS寄存器的值是什么?
(3)程序的功能是什么?
(4)写出查看DS:
0处内容的DEBUG命令。
(5)程序中2处的INT21指令执行后有什么结果?
(6)如果要运行这个程序应该用什么DEBUG命令?
(7)DEBUG命令-T=04之后,寄存器AX、DS、DX的值是多少?
答:
(1)0B63:
0000
(2)0B63
(3)显示0B62:
0000存储的字符串
(4)-d0B62:
0000
(5)第一处显示字符串,第二处结束程序
(6)-g
(7)(AX)=0962,(DS)=0B62,(DX)=0000
2.8解释DEBUG程序中的如下调试命令。
-D,-E,-T,-G,-A,-R
答:
-D显示内存内容
-E修改内存单元内容
-T跟踪命令
-G运行命令
-A汇编命令
-R查看或修改寄存器内容
2.9用DEBUG调入PROG.EXE后,若程序列出如下:
1234:
0100MOVBX,[4000]
1234:
0104MOVAX,[BP]
1234:
0106MOVAH,1
1234:
0108INT21
1234:
010AMOVDL,AL
1234:
010CMOVAH,2
1234:
010EINT21
1234:
0110RET
列出上面程序的DEBUG命令是()。
寄存器CS的值为(),第一条指令的物理地址为()。
如果要修改寄存器BX为1200H,应键入DEBUG命令()。
若要修改第二条指令中的BP为BX,应键入DEBUG命令()。
答:
(1)U
(2)1234H
(3)12440H
(4)RBX
(5)A[0104]
2.10简述DOS系统功能INT21H调用方法。
答:
(1)将调用功能的功能号存入AH寄存器。
(2)如必要,设置该调用功能的入口参数。
(3)执行INT21H指令。
(4)如必要,按规定取得出口参数(返回参数)。
2.11Debug命令调试含有“INT21H”命令的程序段时,如何实现单步执行,“-t”命令为何无法实现?
答:
“INT21H”指令是Dos的系统调用,如果使用“-t”跟踪,则进入DOS系统子程序。
如果希望单步执行,可以通过P命令或“-g=xx+1”来实现。
2.12有主存数据段存放情况如下图所示,请写出代码,输出数据段的字符串“inspireageneration!
”。
答:
movax,145B
movds,ax
movah,09
movdx,0
int21h
习题3
3.1何为段地址?
何为有效地址?
何为物理地址?
答:
例如DS=6542H,指令movax,DS:
[123A];123A为有效地址,6542H为段地址,65420H+0123AH=6665A即物理地址.
3.2指出以下指令的寻址方式,array是变量。
(1)movax,9
(2)movbyteptr[bx],9
(3)movbx,[di]
(4)movax,bx
(5)mov[si+bx],9
(6)movarray[bx],cx
(7)movax,array+9
(8)movax,array[bx+di]
答:
(1)立即数寻址
(2)寄存器间接寻址
(3)变址寻址
(4)寄存器寻址
(5)基址变址寻址
(6)相对基址寻址
(7)直接寻址
(8)相对基址变址寻址
3.3假定(DS)=1200H,(SS)=4400H,(BX)=463DH,(BP)=2006H,(SI)=6A00H,位移量D=4524H,以AX寄存器为目的操作数,试写出以下各种寻址方式下的传送指令,并确定源操作数的有效地址EA和物理地址。
(1)立即寻址
(2)直接寻址
(3)使用BX的寄存器寻址;无EA
(4)使用BX的间接寻址
(5)使用BP的寄存器相对寻址
(6)基址变址寻址
(7)相对基址变址寻址
答:
(1)操作数在指令中无EA
(2)直接寻址:
EA=4524H,物理地址=DS:
4524
(3)使用BX的寄存器寻址:
无EA
(4)使用BX的间接寻址:
EA=463
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)