计算机组成与汇编语言笔记整理
第6章:汇编语言
本章要点
6.1 汇编语言语句
6.1.1  汇编语言语句格式 
指令语句的格式:
    [标号:] 指令助记符  [操作数[,操作数]]  [;注释]
伪指令语句的格式:
    [名字] 伪指令助记符  [操作数[,操作数]]  [;注释]
6.1.2  伪指令运算符和操作数 
1.伪指令运算符 
1)算术运算符
  算术运算包括:加(+)、减(-)、乘(*)、除(/)、模除(MOD)。
    其中,模除(MOD)表示两整数相除后取余数。
6.1 已知符号常量NUM51,求下列指令的汇编结果(表达式的值):
  MOV  AXNUM/9
  MOV  AXNUM MOD 9
  MOV  AXNUM*5
汇编的结果是:
  MOV  AX5
  MOV  AX6
  MOV  AX255
2)逻辑运算符和移位运算符
逻辑运算包括:逻辑乘(AND)、逻辑加(OR)、按位加(XOR)和逻辑非(NOT)。逻辑运算是按位进行的。
移位运算包括:右移(SHR)和左移(SHL),表示将二进制常量右移或左移运算符右边所规定的位数,所空出的位均补0
6.2 求下列指令汇编的结果。
    MOV  AL4CH SHL 2
    MOV  ALNOT 0FFH
    AND  AL4CH AND 0F0H
    XOR  AL4CH XOR 0FFH
汇编的结果是:
    MOV  AL30H
    MOV  AL0
    AND  AL40H
    XOR  AL0B3H
3)关系运算符
    关系运算包括:相等(EQ)、不等(NE)、小于(LT)、大于(GT)、小于等于(LE)和大于等于(GE)。
  它们的运算结果是两个特殊的常量,若关系不成立,结果为0;否则结果为0FFH0FFFFH
6.3 求下列指令汇编的结果。
  MOV  AL4CH EQ 2
  MOV  AL4CH GT 1
  汇编的结果是:
  MOV  AL0
  MOV  AL0FFH
4)返回值运算符
① 取类型算符TYPE
格式为:TYPE  变量或标号
如果TYPE后面跟的是变量,则汇编程序将回送该变量类型的字节数:字节类型为l,字类型为2,双字类型为44字类型为810字节类型为10
如果是标号,则汇编程序将回送代表该标号类型的数值:NEAR型为-1字符串常量的格式(0FFFFH),FAR型为-20FFFEH)。
② 取变量所含的数据存储单元个数算符LENGTH
格式为:LENGTH 变量
返回利用DUP定义的数组中元素的个数,即重复操作符DUP前的整数n值。
如果变量定义语句中没有使用DUP,则返回1
如果嵌套使用了DUP,则只返回最外层的重复数。
③ 取变量所含的数据存储区大小算符SIZE
格式为:SIZE 变量
它的取值为该变量所占数据存储区的字节数。SIZE算符与LENGTH算符的关系是:LENGTH 变量 ×TYPE 变量,即等于上述两种算符取值的乘积。
④ 取偏移地址算符OFFSET
    格式为:OFFSET 变量或标号
    它的取值为其后变量或标号的偏移地址。
⑤ 取段地址算符SEG
    格式为:SEG 变量或标号
    它的取值为其后变量或标号所在段的段地址。
5)属性运算符
① 类型运算符PTR
    格式为:类型 PTR 地址表达式
    其中类型字段表示所赋予的新的类型属性,对于变量可以是BYTEWORDDWORD,对于标号可以是NEARFAR
例如指令:MOV  [BX], 0FFH
  两操作数类型均不明确,应写成:
  MOV  [BX], WORD PTR 0FFH
② 段操作符“:”
    格式为:  段寄存器名:地址表达式
          或:  段名:地址表达式
③ 短转移算符SHORT
        例如:JMP  SHORT  TAG
④ 定义类型算符THIS
        格式为:THIS 类型
⑤ 字节分离算符HIGHLOW
      格式为: HIGH/LOW  常量或地址表达式
运算符的优先级别,从高到低排列如下:
① 括号的项。
LENGTHSIZE
PTROFFSETSEGTYPETHIS及段操作符“:”
HIGHLOW
⑤ *,/MODSHLSHR
⑥ +,-
EQNELTLEGTGE
⑧逻辑运算:NOTANDORXOR
SHORT
2. 操作数   
1)数值表达式
① 常量
    可分为数值常量和符号常量。
② 数值表达式
    由常量、符号常量以及运算符组成,其运算结果为数值常量。汇编语言允许对常量进行三种类型的运算:算术运算、逻辑运算、关系运算。
2)地址表达式
由变量、标号、常量、寄存器(BPBXSIDI)间址的内容(用寄存器名加方括号表示)和运算符组成。
地址表达式的值一般是偏移地址具有段、偏移地址及类型三个属性。
地址表达式的运算符可以使用数值表达式的运算符,也可以使用属性运算符和返回值运算符。
EQU 20H
  B  DB  10H30H
试分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小时内删除。