计算机组成与汇编语言笔记整理
第6章:汇编语言
● 本章要点
● 6.1 汇编语言语句
● 6.1.1 汇编语言语句格式
指令语句的格式:
[标号:] 指令助记符 [操作数[,操作数]] [;注释]
伪指令语句的格式:
[名字] 伪指令助记符 [操作数[,操作数]] [;注释]
● 6.1.2 伪指令运算符和操作数
1.伪指令运算符
(1)算术运算符
算术运算包括:加(+)、减(-)、乘(*)、除(/)、模除(MOD)。
其中,模除(MOD)表示两整数相除后取余数。
例6.1 已知符号常量NUM=51,求下列指令的汇编结果(表达式的值):
MOV AX,NUM/9
MOV AX,NUM MOD 9
MOV AX,NUM*5
汇编的结果是:
MOV AX,5
MOV AX,6
MOV AX,255
(2)逻辑运算符和移位运算符
逻辑运算包括:逻辑乘(AND)、逻辑加(OR)、按位加(XOR)和逻辑非(NOT)。逻辑运算是按位进行的。
移位运算包括:右移(SHR)和左移(SHL),表示将二进制常量右移或左移运算符右边所规定的位数,所空出的位均补0。
例6.2 求下列指令汇编的结果。
MOV AL,4CH SHL 2
MOV AL,NOT 0FFH
AND AL,4CH AND 0F0H
XOR AL,4CH XOR 0FFH
汇编的结果是:
MOV AL,30H
MOV AL,0
AND AL,40H
XOR AL,0B3H
(3)关系运算符
关系运算包括:相等(EQ)、不等(NE)、小于(LT)、大于(GT)、小于等于(LE)和大于等于(GE)。
它们的运算结果是两个特殊的常量,若关系不成立,结果为0;否则结果为0FFH或0FFFFH。
例6.3 求下列指令汇编的结果。
MOV AL,4CH EQ 2
MOV AL,4CH GT 1
汇编的结果是:
MOV AL,0
MOV AL,0FFH
(4)返回值运算符
① 取类型算符TYPE
格式为:TYPE 变量或标号
如果TYPE后面跟的是变量,则汇编程序将回送该变量类型的字节数:字节类型为l,字类型为2,双字类型为4,4字类型为8,10字节类型为10。
如果是标号,则汇编程序将回送代表该标号类型的数值:NEAR型为-1字符串常量的格式(0FFFFH),FAR型为-2(0FFFEH)。
② 取变量所含的数据存储单元个数算符LENGTH
格式为:LENGTH 变量
返回利用DUP定义的数组中元素的个数,即重复操作符DUP前的整数n值。
如果变量定义语句中没有使用DUP,则返回1。
如果嵌套使用了DUP,则只返回最外层的重复数。
③ 取变量所含的数据存储区大小算符SIZE
格式为:SIZE 变量
它的取值为该变量所占数据存储区的字节数。SIZE算符与LENGTH算符的关系是:LENGTH 变量 ×TYPE 变量,即等于上述两种算符取值的乘积。
④ 取偏移地址算符OFFSET
格式为:OFFSET 变量或标号
它的取值为其后变量或标号的偏移地址。
⑤ 取段地址算符SEG
格式为:SEG 变量或标号
它的取值为其后变量或标号所在段的段地址。
(5)属性运算符
① 类型运算符PTR
格式为:类型 PTR 地址表达式
其中类型字段表示所赋予的新的类型属性,对于变量可以是BYTE、WORD、DWORD,对于标号可以是NEAR、FAR。
例如指令:MOV [BX], 0FFH
两操作数类型均不明确,应写成:
MOV [BX], WORD PTR 0FFH
② 段操作符“:”
格式为: 段寄存器名:地址表达式
或: 段名:地址表达式
③ 短转移算符SHORT
例如:JMP SHORT TAG
④ 定义类型算符THIS
格式为:THIS 类型
⑤ 字节分离算符HIGH和LOW
格式为: HIGH/LOW 常量或地址表达式
运算符的优先级别,从高到低排列如下:
① 括号的项。
② LENGTH,SIZE。
③ PTR,OFFSET,SEG,TYPE,THIS及段操作符“:”
④ HIGH,LOW
⑤ *,/,MOD,SHL,SHR
⑥ +,-
⑦ EQ,NE,LT,LE,GT,GE。
⑧逻辑运算:NOT,AND,OR,XOR。
⑨SHORT。
2. 操作数
(1)数值表达式
① 常量
可分为数值常量和符号常量。
② 数值表达式
由常量、符号常量以及运算符组成,其运算结果为数值常量。汇编语言允许对常量进行三种类型的运算:算术运算、逻辑运算、关系运算。
(2)地址表达式
由变量、标号、常量、寄存器(BP、BX、SI、DI)间址的内容(用寄存器名加方括号表示)和运算符组成。
地址表达式的值一般是偏移地址具有段、偏移地址及类型三个属性。
地址表达式的运算符可以使用数值表达式的运算符,也可以使用属性运算符和返回值运算符。
例EQU 20H
B DB 10H,30H
试分析6.5 设符号常量A和变量B定义如下:
A下列指令的源操作数。
① MOV AX, A+1
数值表达式,执行后寄存器AX的值为21H。
② MOV BL, B+1WORD PTR B
地址表达式,执行后,寄存器BX的值为3010H。
地址表达式,执行后,寄存器BL的值为30H。
③ MOV BX,
6.2 汇编语言伪指令
6.2.1 符号定义伪指令
1. 等价伪指令
语句格式:符号名 EQU 表达式
功能:用来为常量、表达式以及其它各种符号定义一个等价的符号名,但它并不申请分配存储单元。
用法① :定义一个常量符号。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论