汇编课后答案 联系客服

发布时间 : 星期五 文章汇编课后答案更新完毕开始阅读332257260722192e4536f632

(1)数据传送类令:

①通用数据传送指令如传送指令MOV、交换指令XCHG、换码指令XLAT

②堆栈操作指令如进栈指令PUSH出栈指令POP ③标志传送指令如标志寄存器传送;标志位操作

④地址传送指令如有效地址传送指令LEA、指针传送指令LDS指针传送指令LES

⑤输入输出指令如输入指令IN、输出指令OUT

(2)算术运算指令

①加法指令如加法指令ADD、带进位加法指令ADC、增量指令INC

②减法指令如减法指令SUB、带借位指令SBB、减量指令DEC、求补指令NEG、比较指令CMP

③乘法指令如无符号乘法指令MUL、有符号乘法指令IMUL ④除法指令如无符号数除法指令DIV、有符号数除法指令IDIV ⑤符号扩展指令如字节转换字指令CBW、字转换字节指令CWD ⑥十进制调整指令如压缩BCD码调整指令、非压缩BCD码调整指令

(3)位操作类指令

①逻辑运算指令如逻辑指令AND、逻辑或指令OR、逻辑异或指令XOR、逻辑非指令NOT、测试

指令TEST

②移位指令如逻辑移位指令SHL和SHR、算术移位指令SAL和SAR ③循环移位指令如不带移位指令XOL和ROR、带移位指令RCL和RCR

(4)控制转移类指令 ①无条件转移指令JMP

②条件转移指令如判断单个标志状态JZ/JE、JNZ/JNE、JS/JNS、JP/JPE、JNP/JPO、JC/JB、JNC/JNB/JAE,用于比较无符号数高低JB(JNAE)、JNB(JAE)、JBE(JNA)、JNBE(JA),用于比较有符

号数大小JL(JNGE)、JNL(JGE)、JLE(JNG)、JNLE(JG)

③循环指令LOOP

④子程序指令如子程序调用指令CALL、子程序返回指令RET

⑤中断指令如INT N (5)串操作类指令 ①串传送指令MOVS ②串存储指令STOS ③串读取指令LODS ④串比较指令CMPS

⑤串扫描指令SCAS ⑥重复前缀指令REP; (6)处理机控制类指令 ①空操作指令NOP ②段超越前缀指令SEG ③封锁前缀指令LOCK ④暂停指令HLT ⑤交权指令ESC ⑥等待指令WAIT。

〔习题2.40〕总结8086指令系统所采用的各种寻址方式,包括一般的数据寻址、外设数据寻址、堆栈数

据寻址、串操作数据寻址、转移指令目的地址的寻址等,并举例说明。

〔解答〕 1. 一般的数据寻址

立即数寻址方式如:mov al,05h 寄存器寻址方式如:mov bx,ax

存储器寻址方式

(1)直接寻址方式如:mov ax,[2000h] (2)寄存器间接寻址方式如:mov ax,es:[2000h] (3)寄存器相对寻址方式如:mov ax,[di+06h] (4)基址变址寻址方式如:mov ax,[bx+si] (5)相对基址变址寻址方式如:mov ax,[bx+si+06h]

2. 外设数据寻址 输入指令IN,如:

in al,21h in ax,dx 输出指令OUT,如:

out dx,al 3. 堆栈数据寻址

进栈指令PUSH,如:PUSH [2000H] 出栈指令POP,如:POP [2000H]

4. 串操作数据寻址 5. 转移指令目的地址的寻址 直接寻址、间接寻址、相对寻址 第3章 汇编语言程序格式

〔习题3.1〕伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作用?

〔解答〕

伪指令语句与硬指令语句的本质区别是能不能产生CPU动作;

伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说明,

并在程序执行前由汇编程序完成处理。

〔习题3.2〕什么是标识符,汇编程序中标识符怎样组成?

〔解答〕

为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符; 汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如-,$,?,@)组成,不能

以数字开头。

〔习题3.3〕 什么是保留字,汇编语言的保留字有哪些类型,并举例说明。

〔解答

保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。汇编语言对大小写不敏感。

如定义字节数和字符串的DB就是伪指令助记符。

〔习题3.4〕汇编语句有哪两种,每个语句由哪4个部分组成?

〔解答〕

汇编语句有执行性语句和说明性语句;

执行性语句由标号、硬指令助记符、操作数和注释四部分组成; 说明性语句由名字、伪指令助记符、参数和注释四部分组成

〔习题3.5〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。

〔解答〕

⒈ 编辑 文本编辑程序 汇编语言源程序.asm ⒉ 汇编 汇编程序 目标模块文件.obj ⒊ 连接 连接程序 可执行文件.exe或.com

⒋ 调试 调试程序 应用程序

〔习题3.6〕将第2章习题2.36采用简化段定义格式编写成一个完整的源程序。

〔解答〕

;简化段定义格式

.model small ; 定义程序的存储模式(小模式) .stack ; 定义堆栈段(默认1024个字节)

.data ; 定义数据段 str1 db 'Input Number:0~9 : ',0dh,0ah,'$'

str2 db 'Error!',0dh,0ah,'$' .cade ; 定义代码段

.startup ; 说明程序的起始点,建立ds,ss的内容。

mov ah,09h ; 显示str1字符串

mov dx,offset str1

int 21h

getkey: mov ah,1 ; 调用DOS功能

int 21h cmp al,'0'

jb error ; 小于0,出错处理

cmp al,'9'

ja error ; 大于9,出错处理

mov ah,02h ; 调用DOS显示字符功能,显示该数字

mov dl,al int 21h

.exit 0 ; 终止程序执行,返回DOS

error: mov ah,09h ; 出错,调用DOS 功能显示str2字符串

mov dx,offset str2

int 21h

jmp getkey ; 返回按键 end ; 汇编结束