汇编学习笔记 第四章

4.1 数据

  1. 常量
    通过EQU伪指令定义的符号名一般称为符号常量
  2. 标识符(变量名)

    • 要求
      • 不能以数字开头
      • 不能仅使用特殊字符
      • 不能是保留字
  3. 操作符和表达式

    • $
    • ?
    • DUP

    注:一定要注意$和EQU一起出现的情况

4.3 运算符和表达式

  1. 算术运算符

    • 注意点
      • 参加运算的数和结果都是整数
      • 除法只保留商
  2. 逻辑运算符

    • 注意点
      • 按位操作
      • 与逻辑运算指令不同,在编译时进行计算
  3. 数值回送操作符

    • SEG:段基址
    • OFFSET:偏移地址
    • TYPE:类型值
    • LENGTH:取长度(不用DUP定义的变量,值为1)
    • SIZE:LENGTH * TYPE
  4. 属性操作符

    • PTR:改变类型
    • HIGH/LOW:取高位/低位字节
  5. 移位运算符

    • SHL/SHR:左移右移运算符
    • ROL/ROR:循环左移右移运算符,第二个操作数为计数器

4.4 伪指令

  1. SEGMENT/EMDS:表示某个逻辑段的开始与结束

    • 对齐类型(对段的起始地址做要求)
      • PAGE
      • PARA
      • WORD
      • BYTE
      • DWORD
    • 组合类型
      • 缺省
      • PUBLIC
      • COMMMON
      • STACK
      • MEMORY
      • AT表达式
  2. ASSUME
    用来指明通过哪一个段寄存器可以找到对应段

  3. 段寄存器的装入

    • DS/ES:通常方法
    • SS:通常对其类型为PARA
    • CS
      • 装入方式:利用END后的标号(解释了为什么END START在 CODE ENDS之后)
      • 注意点:不能用数据传送指令修改,但运行中有多种修改方式

    注:对齐类型和组合类型的确常用,不过应该不考吧。

  4. 处理器选择伪指令和简化段定义伪指令

  5. 定位伪指令

    注:上述两个倒是应该不考

  6. 赋值伪指令:= 可以重复定义,但EQU不行

  7. LABLE伪指令

    • 若声明类型为DW,则声明字变量顺序不变。例如:X DW ‘AB’,则结果为4142H
    • 若声明类型为DB,则声明两个字节变量后访问一个子单元,顺序改变。例如:X DB ‘AB’,结果为4241H

你可能感兴趣的:(汇编)