(一)知识范围
指令系统的概念、指令格式;对操作数的寻址方式;常用指令(传送指令、算术运算指令、逻辑运算和移位指令、串操作指令、程序控制指令与处理器控制指令);汇编语言程序的基本结构;常用伪指令(数据定义、符号定义、段定义、设定段寄存器);DOS功能调用(输入/输出字符、输入/输出字符串、结束程序);三种结构(顺序结构、分支结构和循环结构)程序设计;常用程序设计举例。
(二)考核要求
- 理解指令系统的概念及指令格式。
- 掌握常用的寻址方式并能熟练地使用它们。
- 掌握常用指令的格式、功能和使用方法,分析各种指令执行后的结果。
- 掌握指令对状态标志的影响。
- 掌握常用伪指令的格式和功能。
- 掌握汇编语言源程序的构成,熟练掌握汇编语言程序上机调试运行过程。
- 理解程序的三种基本结构,能够使用汇编语言解决常见的问题。
目录
指令系统概述
指令基本概念
指令是要求计算机执行特定操作的命令。
计算机所能执行的全部指令的集合称为指令系统。
指令以二进制编码的形式存放在存储器中,用二进制编码形式表示的指令称为机器指令。
用符号表示度指令称为符号指令,汇编语言程序中的指令就是符号指令,具有直观、易理解和可帮助记忆的特点。
机器指令(二进制) |
十六进制 |
汇编指令 |
功能 |
01001011 |
4BH |
DEC BX |
将寄存器BX的内容减1 |
指令格式
汇编指令由操作码字段和操作数字段构成。
- 指令字长度:一个指令字中包含二进制代码段位数。
- 机器字长:指计算机能直接处理的二进制数据的位数,它决定计算机的运算精度。
- 单字长指令:指令字长度等于机器字长的指令。
- 半字长指令:指令字长度等于半个机器字长度的指令。
- 双字节长指令:指令长度等于2个机器长度的指令。
在一个指令系统中,如果各种指令字长度是相等的,称为等长指令字结构;如果各种指令字长度随指令功能而异,如果有点指令是单字长指令,有的指令是双字长指令,被称为变字长指令字结构。
8086汇编语言格式
8086指令的格式为: 标号:操作码 操作数 ;注释
其中,标号和注释都是可选项,标号表示该指令在代码段中的偏移地址。注释对该指令进行说明,不参加指令单执行。
操作码:说明指令的性质和功能。
操作数:参与运算的操作数或存放操作数的地址。(数值、寄存器、存储器)
分固定长度和可变长度。X86系列CPU(CISC)采用可变长度,ARM(RISC)采用固定长度。
8086CPU的机器指令长度为1 ~ 6 个字节。
例 :汇编指令MOV AX,05C7H的机器指令汇编码为B8C705H,转换成二进制为:
1011 1000 1100 0111 0000 0101B
8086寻址方式
操作数存在方式
操作数包含在指令中——即指令的操作数部分就包含着操作数本身。
MOV AX,1234
ADD AL,2
操作数包含在CPU的某一个内部寄存器中——这时指令中的操作数是CPU内部的某一个寄存器。
MOV DS,AX
操作数在内存的数据区中——这时指令中的操作数包含着此操作数的地址
MOV AX,[2000]
MOV buffer[SI],AX
操作数在I/O端口寄存器中——这时指令中的操作数包含着此操作数的所在端口地址
IN AL,n ; n是端口号
立即寻址(Immediate Addressing)
操作数直接存放在指令中,紧跟在操作码之后,作为指令的一部分,存放在代码段里,这种操作数称为立即数,常用来给寄存器赋值。
立即数只能做源操作数。 (×)MOV 3,AL
源、目的操作数的字长必须一致。 (×)MOV AH,3064H
存储器寻址(Memory Addressing)
指令数存放在存储器中,CPU取出指令后,为了获得操作数(对于源操作数)或操作数的存放地址(对于目的操作数)还要再次访问存储器。
指令中以逻辑地址(有效地址EA)表示操作数存放的位置,可以