欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

汇编语言——宏汇编

程序员文章站 2022-03-07 15:12:00
...

汇编语言——宏汇编

 

MWhite关注

2017.12.20 20:49:12字数 614阅读 393

  • 标识符字段
  • 操作符字段
    • 指令助记符
    • 伪指令助记符
  • 操作数字段
  • 注释字段

1. 运算符

汇编语言——宏汇编

算术运算符

数值表达式中可用所有运算
地址表达式中只可用+ -

逻辑运算符

and or

关系运算符

关系满足则返回全1,否则返回全0

源文件中写
MOV  AX, 0A2H NE02H
编译后为
MOV AX, 0FFFFH 

分析运算符

  • SEG 取变量或标号所在段的段寄存器值作为段基址,结果为16位值
  • OFFSET 取变量或标号的段内偏移量,结果为16位值
  • TYPE 取变量或标号的类型
  • LENGTH 取DUP重复次数
  • SIZE 取分配给变量的字节个数

    汇编语言——宏汇编

合成运算符

合成运算符修改已定义的单个操作数,重 新生成段基址、偏移量相同而类型不同的 新操作数。

  • PTR 新操作数的类型为表达式中指定的“新类型”,
  • THIS 新操作数的段基址和偏移量为汇编过程中遇到THIS运算符时的当前值
  • LABEL
    Name LABEL Type
    变量类型( BYTE /WORD /DWORD) 标号类型(FAR /NEAR)

2. 常用伪指令

数据定义伪指令

  • EQU
  • =
  • $ 地址计数器(符号“$”表 示当前偏移地址值) 比如$+4

汇编语言——宏汇编

 

汇编语言——宏汇编

  • DB—— 变量为字节数据类型(8位)
  • DW—— 变量为字数据类型(16位)
  • DD —— 变量为双字数据类型(32位)
  • DQ —— 变量为4字数据类型(64位)
  • DT —— 变量为10字节数据类型(80位)

程序结构伪指令

段名 SEGMENT  [ 定位选择 ]  [ 链接类型 ]  [‘类别标识符’]
 ……
段名 ENDS

汇编语言——宏汇编

汇编语言——宏汇编

段说明伪指令ASSUME

ASSUME DS:DATA,SS:STACK,CS:CODE

过程定义伪指令

汇编语言——宏汇编

段内定位语句ORG

ORG语句之后段内所有的数据或代码均以 表达式或常量的值为起始偏移量连续存放, 除非遇到另一个ORG语句。

宏汇编语言基本语法

1.方式选择伪指令

.8086
通常, 方式伪指令放在程序的头部, 作为源程序的 第1条语句.

2.段定义语句

Segment_name segment [定位类型][链接参数][‘分类名’][段长度]
 ….
Segment_name ends 

ASSUME 段寄存器:段名,ꞏꞏꞏ,段寄存器:段名

  • 通常ASSUME作为代码段的第一条指令.
  • ASSUME语句仅约定了对某个逻辑段进行寻址操 作时使用哪个段寄存器,而段寄存器的初值必在程序中用 指令设置.
    SS可赋值,也可不 赋值.
相关标签: 编程