第一范文网 - 专业文章范例文档资料分享平台

汇编语言程序设计答案

来源:用户分享 时间:2026/9/2 17:45:03 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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 何为段地址?何为有效地址? 何为物理地址? 答:

例如DS=6542H,指令mov ax,DS:[123A]; 123A为有效地址,6542H为段地址,65420H+0123AH=6665A即物理地址.

3.2 指出以下指令的寻址方式,array是变量。

(1)mov ax, 9

(2)mov byte ptr[bx],9 (3)mov bx,[di] (4)mov ax,bx (5)mov [si+bx],9 (6)mov array[bx],cx (7)mov ax, array+9

(8)mov ax, 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=463DH,物理地址=DS:463D

(5)使用BP的寄存器相对寻址:MOV AX,[BP+4524],EA=2006+4524,

物理地址=SS:EA

(6)基址变址寻址: MOV AX,[BX+SI],EA= BX+SI,物理地址=DS:EA (7)相对基址变址寻址:MOV AX,[4524+BX+SI],EA=4524+BX+SI, 物理地址=DS:EA

3.4 在数据段定义了ARRAY数组,其中依次存储了五个字数据,ARRAY的起始地址(第一个数据的地址)为24H,请用不同寻址方式的指令,把第5个字送AX寄存器,指令条数不限。

答:(1)直接寻址

MOV AX,ARRAY+8 或MOV AX,[ARRAY+8] (2)使用BX的间接寻址

LEA BX,ARRAY+8 ;MOV AX,[BX] (3)使用BX的寄存器相对寻址

LEA BX,ARRAY ;MOV AX,[BX+8] (4)基址变址寻址

LEA BX,ARRAY ; MOV SI,8 ; MOV AX,[BX+SI]

习题4

4.1 溢出标志OF与进位标志CF有何作用和区别?

答:处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF。应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。

4.2 带符号数比较大小,当AX < BX时程序转向标号L1,若前导指令为CMP AX, BX,后续指令应为什么?若视为二个无符号数比较大小, 后续指令应为什么? 答:带符号数:JL L1, 无符号数:JB L1

4.3 说出CALL指令和INT 21H指令的操作,有何异同? 答:CALL把断点压入堆栈,不一定是远调,INT 21H还要把FLAGS压入堆栈,且是远调,总入口地址为84H内存中的两个字。

4.4 除了用4CH号系统功能调用结束程序的执行并退出,还有哪些办法? 答:RET指令,INT 20H,但要正确使用。

4.5 V是变量,指出下列错误的指令,说出错误原因,并给出合适的修改。 (1) MOV AX,[DX] (2) MOV DS,DATA (3) MOV CS,AX (4) MOV AX,DL (5) PUSH AL (6) ADD [BX],[DI] (7) LEA [BX],V (8) MOV [DX],OFFSET V (9) MOV [SI],2 (10) MUL BX,CX (11) DIV 5 (12) MOV BYTE[SI],AX (13) MOV AX,[SI+DI] (14) SHR AX,4 (15) CMP 6,AX

(16) MOV [FFFF],AX (17) MOV AX,BX+4 (18) JMP FAR PRO 答: (1) MOV AX,[BX] (2) MOV DS,BX (3) MOV ES,AX

(4) MOV AL,DL (5) PUSH AX

(6) ADD [BX],DI (7) LEA BX,V

(8) MOV DX,OFFSET V

(9) MOV WORD PTR [SI],AX (10) MUL BX (11) DIV BX

(12) MOV BYTE PTR [SI],2 (13) MOV AX,[BX+SI] (14) SHR AX,1 (15) CMP AX,6

(16) MOV [FFFE],AX (17) MOV AX,[BX+4] (18) JMP FAR PTR PRO

4.6 在数据段定义了ARRAY数组,其中依次存储了4个字数据,根据以下要求把第4个字送AX寄存器。

(1)直接寻址 (2)使用BX的间接寻址

(3)使用BX和 ARRAY的寄存器相对寻址 (4)基址变址寻址

(5)MOV以外的其它指令 答:(1)直接寻址

MOV AX,ARRAY+6 或MOV AX,[ARRAY+6] (2)使用BX的间接寻址

LEA BX,ARRAY+6 ;MOV AX,[BX] (3)使用BX和 ARRAY的寄存器相对寻址

LEA BX,ARRAY ;MOV AX,[BX+6] (4)基址变址寻址

LEA BX,ARRAY ; MOV SI,6 ; MOV AX,[BX+SI] (5)MOV以外的其它指令

SUB AX,AX; ADD AX,[ARRAY+6]

4.7 画出数据在数据段中的存放情况,程序执行后,BX、DI、CX、DX寄存器中的内容是什么? 程序如下: data segment

array dw 20,30,40,20h,30h,-6

搜索更多关于: 汇编语言程序设计答案 的文档
汇编语言程序设计答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9gipc2kk0s2b61z989hm_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top