汇编语言——宏汇编

汇编语言——宏汇编

 

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可赋值,也可不 赋值.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值