微机原理与接口技术课后习题答案 联系客服

发布时间 : 星期一 文章微机原理与接口技术课后习题答案更新完毕开始阅读eb1a4fc058f5f61fb73666fd

CWD

MOV BX,5 IDIV BX IMUL Y MOV BX,2 IMUL BX

MOV Z,AX

11. 解:

NOT AX

NOT DX ADD AX,1 ADC DX,0

12. 解:

(1) MOV AL,S

SUB AL,6 DAS

ADD AL,V DAA

MOV U,AL (2) MOV AL,X ADD AL,W DAA

MOV BL,AL MOV AL,Z SUB AL,V DAS

XCHG AL,BL SUB AL,BL DAS

MOV U,AL

13. 解:

MOV CL,4 另解: mov cx,4

SHR AX,CL again: shr dx,1 MOV BL,DL rcr ax,1 SHR DX,CL loop again SHL BL,CL OR AH,BL

14. 解:

MOV BYTE PTR [BP],20H ; 字节操作,20H→(58200H), MOV WORD PTR [BX],2000H ; 字操作,2000H→(22400H),即 ; 00H→(22400H),20H→(22401H)

15. 答:PUSH和POP堆栈操作指令中操作数为除立即寻址方式外的所有寻址方式,字

操作。

16. 解:90000H,9E1FFH,9E200H

17. 解:(1)错。码段段址寄存器CS不能出现在指令中。

(2)错。双操作数指令中两操作数不能同为存储器寻址方式。

(3)错。IP是指令指针寄存器 ,它的内容是下一条要取出的指令的偏移地址,

不能为用户所用,故不能出现在指令中。 (4)(5)错。原因同(1)。

(6)错。IN为输入指令,不能使用BX,只能使用累加器AX或AL,接受端口上的数据信息。指令中DX内存放16位端口地址。

(7)错。数据类型不匹配,“BYTE PTR [BX]”指示目的操作数将存放在一个字节

的存储器内,源操作数为立即数1000为字数据。 (8)错。原因同(1)。

(9)错。SI和DI都是变址寄存器,不能同时使用。 (10)错。双操作数指令中目的操作数不能为立即数。 18.答:见表1 AX 1F52 88C9 FF82 58BA FFC5 09A0 8AEA D367

BX 1F52 88C9 007E 020E FF8B 1E97 FC29 32A6 JB √ √ JNB √ √ √ √ √ √ JBE √ √ √ √ JNBE √ √ √ √ JL √ √ √ √ JNL √ √ √ √ JLE √ √ √ √ √ √ JNLE √ √ 表1 题18答案

19.答:见表2 指令 LOOP L20 LOOPNE L20 LOOPE L20

AX BX CX DX 0004H 000BH 0000H 0000H 0004H 000BH 0000H 0000H 0002H 0004H 0002H 0002H 表2 题19答案

第三章 8088汇编语言程序设计

本章的主要内容是汇编语言语句行的构成,源程序的结构,汇编语言程序设计方法。 3.1 重点与难点

本章的学习重点是结构化程序设计思想,顺序、分支、循环结构的程序设计,子程序结构的设计与调用,中断指令的应用。另外,汇编语言伪指令的使用、源程序的结构等也是必须掌握的。

3.1.1 汇编语言语句行的构成 1.标记

(1)标识符:由数字、字母和下划线组成,且不能以数字开头,最大长度不超过31个字符。

(2)保留字:汇编语言中保留下来的具有特殊用途的字串,如指令、伪指令、寄存器名等都是保留字。保留字不可用作标识符。

(3)界符:程序或指令中两个部分的分隔符号。汇编语言源程序中可用的界符:

′〈 〉 ; , : ? $ ( ) + - = & [ ] * / ·

(4)常量:数字常量,可以使用不同的进制D、B、H、Q;字符串常量,由引号引起来的字符串,相当给出字符所对应的ASCII码串。

2.符号及其属性

(1)寄存器:8086/8088 CPU的寄存器可以作为指令的操作数。

(2)变量:即内存单元的符号地址。变量不能与保留字、段名重名。它有三个属性: 段属性,指变量所在段的段地址;

偏移量,指变量所在段的起始地址到变量地址之间的字节数,即偏移(有效、逻辑)地址。

类型,指指变量具有的字节数,包括BYTE、WORD、DWORD、QWORD和TBYTE等。 (3)标号:即代码段中某条指令的符号地址,由编程者根据需要确定的。标号不能与保留字重名,可使用字母、数字及下划线,但不允许用数字开头,字符个数不超过31个。

标号作为符号地址也有三个属性:段、偏移量和类型(NEAR、FAR)。 3.表达式

表达式是作为语句的一个操作数,在汇编时一个表达式得到一个值。 (1)操作数

数据——常数、符号常量;存储单元地址——常用符号地址表示。 (2)运算符

算术运算符:+、-、*、/、MOD。对地址的运算仅有+(加)、-(减)运算符。 逻辑运算符:AND、OR、NOT和XOR。注意,不要将其和同样名称的指令操作码相混淆。 关系运算符:EQ、NE、LT、GT、LE和GE。参与关系运算的两个操作数必须都是数值,或同一段中的两个存储单元地址,运算结果为0FFFFH(真,True)或0(假,False)。

分析运算符:0FFSET——取一个标号或变量的偏移地址;

SEG——取一个标号或变量所在段的段地址;

TYPE——取变量和标号的类型(BYTE、WORD、DWORD或NEAR、FAR); SIZE——计算一个存储区的字节总数;

LENGTH——计算存储区中数据单元的数目,只对数据定义中的DUP操作有效。

综合运算符:PTR——用于暂时改变变量或标号的原有属性,只在当前语句中有效; THIS——和PTR类似,用于改变存储区的类型; SHORT——指定一个标号为短标号。 4.语句

指令语句:主要由CPU指令组成,每条语句在汇编过程中都会产生对应的目标代码。 伪操作或伪指令语句:为汇编程序提供信息,让汇编程序在汇编过程中执行特定的功能。 两者本质区别在于,伪指令在汇编过程中不形成任何代码。