微机原理及应用复习习题及答案2013 下载本文

安徽工程大学微机原理综合练习题答案

(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 页