汇编语言程序设计及上机指导 第3章 指令格式与寻址方式
- 格式:ppt
- 大小:1.46 MB
- 文档页数:18
汇编语言程序设计第四版【课后习题答案】--囮裑為檤第3章汇编语言程序格式〔习题3.1〕伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作用?〔解答〕伪指令语句与硬指令语句的本质区别是能不能产生CPU动作;伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说明,并在程序执行前由汇编程序完成处理。
〔习题3.2〕什么是标识符,汇编程序中标识符怎样组成?〔解答〕为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符;汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如-,$,?,@)组成,不能以数字开头。
〔习题3.3〕什么是保留字,汇编语言的保留字有哪些类型,并举例说明。
〔解答保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。
汇编语言对大小写不敏感。
如定义字节数和字符串的DB就是伪指令助记符。
〔习题3.4〕汇编语句有哪两种,每个语句由哪4个部分组成?〔解答〕汇编语句有执行性语句和说明性语句;执行性语句由标号、硬指令助记符、操作数和注释四部分组成;说明性语句由名字、伪指令助记符、参数和注释四部分组成〔习题3.5〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。
〔解答〕⒈编辑文本编辑程序汇编语言源程序.asm⒉汇编汇编程序目标模块文件.obj⒊连接连接程序可执行文件.exe或.com⒋调试调试程序应用程序〔习题3.6〕区分下列概念:(1)变量和标号(2)数值表达式和地址表达式(3)符号常量和字符串常量〔解答〕(1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。
(2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。
3.2 重点难点分析1. 8086指令系统(1)8086指令的寻址方式所谓指令的寻址方式是指在指令中操作数的表示方式。
8086的寻址方式有立即数寻址、寄存器寻址、存储器寻址、串操作寻址、外设I/O端口寻址以及程序转移操作寻址。
其中变化最多的是存储器寻址,这种方式又分为直接寻址、寄存器间接寻址、基址寻址、变址寻址以及基址变址寻址。
要求掌握这些寻址方式的特点,能识别操作数的寻址方式。
(2)8086指令解析重点是:①编程时能正确使用下述指令。
MOV、PUSH、POP、LEA、ADD、ADC、SUB、SBB、CMP、AND、OR、NOT、XOR、TEST、SHL、SHR、SAL、SAR、ROL、ROR、RAL、RAR、JMP、JZ(JE)、LOOP等条件转移指令。
②读程序是能正确识别下述指令。
XCHG、XLAT、NEG、MUL、DIV、MOVSB、CMPSB、REP、JA、JB、JG、JL、JAE、JNB、HLT、NOP等指令。
难点是:LEA、CMP、TEST、XLAT、NEG、MUL、DIV、MOVSB、CMPS、REP、LOOP等指令。
2.汇编语言的基本语法(1)汇编语言程序格式领会汇编语言源程序的两个组成特点:分段结构和语句行。
(2)常量、标识符合表达式汇编语言程序的常量有数字常量、字符常量和符号常量。
能正确掌握三种常量的表示方法。
正确掌握标识符的定义及规则。
正确识别指令中表达式的含义。
(3)指示性语句对一些基本的指示性语句——SEGMENT/ENDS、ORG、ASSUME、PROC/ENDP、DB、DW、DD、EQU等必须正确掌握。
(4)指令性语句必须正确掌握指令性语句中标号、操作数的表示方法和使用方法。
(5)宏指令正确识别程序中的宏定义、宏名字、宏调用和宏展开。
3.汇编语言程序设计基础(1)概述;(2)顺序结构程序;(3)分支结构程序;(4)循环结构程序;(5)子程序;(6)DOS系统功能调用。
第3章指令格式与寻址方式【本章内容提要】本章讲述Intel系列微处理器的指令通用格式和各种寻址方式。
除无操作数指令以外,一般指令都需要指出操作数,指令中操作数的给出(即寻址方式)有多种方法。
通过多种寻址方式,提高了程序设计的灵活性,也扩充了指令的具体功能。
【本章学习目标】●熟练掌握汇编语言指令和机器指令的基本格式●明确操作数的各种寻址方式●掌握各种寻址方式物理地址的计算3.1 指令格式机器指令一般由操作码和操作数组成。
操作码指示指令所要完成的操作,如加法、减法、数据传送等,它是指令中必不可少的部分;操作数指示指令执行过程中所需要的数据,如加法指令中的加数、被加数等,这些数据可以是操作数本身,也可以来自某寄存器或存储器单元,一条Intel机器指令可以有零到三个操作数。
汇编语言指令与机器指令是一一对应的。
汇编语言指令的一般格式为:指令助记符操作数列表;注释格式说明:①指令助记符表示指令的名称,一般是指令功能的英文缩写,对应的是机器指令中的操作码部分,也是一条指令中必不可少的部分;②若指令中包含多个操作数,则操作数之间以逗号(,)分隔。
一般来说,将存放操作结果的操作数称为目的操作数,大多是指令的第一个操作数。
其他操作数称为源操作数,其值在指令执行后保持不变。
但有的单操作数指令中的操作数既是源操作数又是目的操作数,还有的指令无需明确指出操作数,成为无操作数指令;③注释以分号(;)开始,用来说明程序功能,不影响指令的执行。
【例】 INC AX ;单操作数指令,把AX寄存器的内容加1MOV EAX,[1000H] ;双操作数指令,将1000H号内存的32位数据传送给EAXIMUL RAX,R8,100 ;三操作数指令,将R8寄存器与100的乘积保存到RAX寄存器HLT ;无操作数指令,完成停机功能这个例子通过具体指令给出了汇编语言指令的基本格式,指令相应的功能将在本章后续内容中详细叙述。
指令的一个操作数可以是立即数、寄存器或者内存单元,然而指令中操作数的给出方式却是多样的,比较灵活。