安徽工程大学微机原理综合练习题答案
(8)IN指令中目的操作数不能用BL(只能用AL或AX) (9)IP不能做目的操作数
(10)DX不能间接寻址,可改为 MOV SI,[BX]
(11)PUSH指令的操作数必须为16位(即:按字操作)
20. 设8086/8088CPU的SS=1050H,SP=0008H,AX=1234H,当执行指令:PUSH AX后, 寄存器
SS、SP、AX内容分别是什么?画图说明1234H在内存中的存放情况。
SS=1050H SP=0006H AX=1234H (10506H)=34H (10507H)=12H
21. 假设(DS)=2000H,(BX)=1256H,(SI)=528FH;位移量TABLE=20A1H,
(232F7H)=3280H,(264E5H)=2450H,则; (1) IP = 1256H (2) IP = 3280H (3) IP = 2450H
22. 已知8086 CPU各寄存器和有关内存单元内容如下:指出执行下列指令后AX寄存器的内容:
(1) AX= 1200H (2) AX= 43EFH (3) AX= 3412H (4) AX= BC9AH (5) AX= 8765H
第三章 (二) 汇编语言程序设计
一、填空题 6. ‘d’
7. 第一个AND是逻辑指令,第二个AND 是逻辑与操作符 8. 0FFFFH 9. 03H
10. 同一代码段内、不同代码段 二、单选题
1. A 2. A 3. D 4. B 5. A 三、分析简答题
16. 汇编语言中的伪指令与执行指令有何不同?
答:伪指令的功能主要用于完成变量定义、段定义等,变量名称后不能带‘:’,它仅仅在汇编过程中告诉汇编程序应如何汇编,而不生成机器代码,即由汇编程序进行处理;执行指令可以完成
《微机原理及应用》第 33 页 共 48 页
安徽工程大学微机原理综合练习题答案
数据传送、各种运算、字符串处理、程序控制等功能,标号后要跟‘:’,这种指令由汇编程序翻译成对应的机器代码,最终由CPU执行处理。
17. 试举例说明一条汇编语句可以有哪几部分组成?各部分之间采用何种分隔符(定界符)相隔
离? 答:略。
18. 指出下面程序片段中的错误。
MYDATA SEGMENT
A DB 12 24 34 错误1:多个操作数之间必须用“,”分开 B: DW ‘12’ 错误2:变量后面不能带冒号“:” MYDATA ENDS MYCODE SEGMENT
ASSUME DS:MYDATA,CS:MYCODE
MOV DS,MYDATA 错误3:立即数不能直接送进段寄存器 MOV AH,A
MOV AL,B 错误4:源、目的操作数字长不一致 MOV CX,A 错误5:源、目的操作数字长不一致
MOV AX,B
MOV IP,B 错误6:MOV 指令中IP不能做操作数
19. 改正下面程序片段中的错误或指出错误原因。
DATA SEGMENT
A DB 12、24、34
错误1:多个操作数之间用“,”分开
B DW ‘12’, ‘ABCD’ 错误2:‘ABCD’改为‘AB’,‘CD’
DATA ENDS CODE SEGMENT
ASSUME DS:DATA,CS:CODE
MOV DS,DATA 错误3:立即数不能直接送进段寄存器 MOV DX,OFFSET A 错误4:DX不能用于间接寻址,可改为BX
MOV AL,[DX+2] 错误5:DX不能用于间接寻址,可改为BX MOV BL,CX 错误6:源、目的操作数字长不一致 20. 指出下面程序片段中的错误。
《微机原理及应用》第 34 页 共 48 页
安徽工程大学微机原理综合练习题答案
A1:DB ? 错误1:变量后面不能带冒号“:” A2 DW 10 K1 EQU 1024 MOV AX,80
MOV K1,AX 错误2:K1为立即数,不能做目的操作数 MOV AL,A2 错误3:源、目的操作数字长不一致 MOV BX,A1 错误4:源、目的操作数字长不一致
MOV A1,K1 错误5:A1为字节变量,K1超出的范围
21. 假设某程序段中的数据定义如下:
(1)
? DA1 ?? ?? 01 00 01 00 DA2 32 25 DA3 ?? ? (2) 变量DA1、DA2、DA3占用字节数分别为:6、2、1;
COUNT=9 表示数据段的长度为9个字节
22. 假设某程序段中的数据定义如下:
A1占24个字节 A2占5个字节 A3占4个字节 L的值为33
L表示的意义:变量A1、A2、A3所占的字节总数
《微机原理及应用》第 35 页 共 48 页
安徽工程大学微机原理综合练习题答案
23. 对下面两个数据段,请分析偏移地址为10H和11H的两个字节中的数据是一样的吗?为什么? 答:不一样. 分别是72H, 04H和04H, 72H.
因为字存储时低8位存放在低字节,高8位存在高字节。
24. 若STR是字符串的首地址,指出下列程序的功能,并将语句加上注解。
LEA
BX,STR ;取STR 的偏移量放到BX中
MOV CX,20 ;_设置循环次数________
LP: CMP [BX],‘*’
JNZ NEXT ;BX所指单元内容不为‘*’,则转移至NEXT MOV [BX],‘$’ ;将BX所指单元用‘$’替代
BX ;BX加1,指向下一个单元
LP ;CX-1不等于0则转移至LP处,继续循环
NEXT: INC
LOOP HLT
程序的功能:将STR开始的前20个字符中的‘*’用‘$’替代
25. 填入适当指令或指令的一部分,完成指定功能。
MAX: MOV BX, 2000H M0V AL,[BX]
M0V CX, 63H(或99)
LOOP1: INC BX
CMP AL,[BX] JAE LOOP2 MOV AL,[BX]
LOOP2: DEC CX
JNZ LOOP1 M0V [2100H] ,AL
26. 指出下列程序的功能,并将有分号(;)的语句加上简要注解
BUF DB 100 DUP(?)
MOV BX,OFFSET BUF ; 取BUF的偏移地址,设置地址指针BX MOV CL,64H
LP: MOV BYTE PTR[BX],0 ; 将BX所指向的内存单元清0
INC BX ; BX内容加1,指向下一个内存单元
《微机原理及应用》第 36 页 共 48 页