《汇编语言程序设计教程》人民邮电出版社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)1111 1101,FE (4)111 1011,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)0100 0000 (2)[10011000]原=[1110 1000]补
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。 答:MYPRG segment
Assume cs:MYPRG start:
MYPRG ends
End start
2.4 程序中用什么语句来结束程序的执行?用什么语句来表示程序的结束和指出程序执行的起点?
答:程序的结束:mov ah,4ch int 21h
程序的结束和指出执行的起点:End start
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:\\>MD MYPRG
(3)复制: C:\\YOUPRG>copy YOU.asm D:\\MYPRG
2.7 下图为DEBUG调入的可执行程序,回答以下问题:
(1) 程序的起始物理地址是多少?结束地址是多少? (2) CS寄存器的值是什么? (3) 程序的功能是什么?
(4) 写出查看DS:0处内容的DEBUG命令。
(5) 程序中2处的INT 21指令执行后有什么结果? (6) 如果要运行这个程序应该用什么DEBUG命令?
(7) DEBUG命令-T=0 4 之后,寄存器AX、DS、DX的值是多少?
答:(1)0B63:0000 (2)0B63
(3)显示0B62:0000存储的字符串 (4)-d 0B62: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:0100 MOV BX, [4000] 1234:0104 MOV AX, [BP] 1234:0106 MOV AH, 1 1234:0108 INT 21 1234:010A MOV DL, AL
1234:010C MOV AH, 2 1234:010E INT 21 1234:0110 RET
列出上面程序的DEBUG命令是( )。
寄存器CS的值为( ),第一条指令的物理地址为( )。
如果要修改寄存器BX为1200H,应键入DEBUG命令( )。 若要修改第二条指令中的BP为BX,应键入DEBUG命令( ) 。 答:(1) U
(2) 1234H (3) 12440H (4) R BX
(5) A [0104]
2.10 简述DOS系统功能INT 21H调用方法。 答:(1)将调用功能的功能号存入AH寄存器。 (2)如必要,设置该调用功能的入口参数。 (3)执行INT 21H指令。
(4)如必要,按规定取得出口参数(返回参数)。
2.11 Debug命令调试含有“INT 21H”命令的程序段时,如何实现单步执行,“-t”命令为何无法实现? 答:“INT 21H”指令是Dos的系统调用,如果使用“-t”跟踪,则进入DOS系统子程序。如果希望单步执行,可以通过P命令或“-g=x x+1”来实现。
2.12 有主存数据段存放情况如下图所示,请写出代码,输出数据段的字符串“inspire a generation!”。
答: mov ax,145B mov ds,ax
mov ah,09 mov dx,0
int 21h
习题3
3.1 何为段地址?何为有效地址? 何为物理地址? 答:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库汇编语言程序设计答案在线全文阅读。
相关推荐: