Categories: 汇编 | Tags: | Views: 845

 

先提一下几个概念

  • 汇编程序语句的类别:指令语句伪指令语句
    指令语句有着与其对应的机器指令,而伪指令没有,只是指示汇编程序如何汇编源程序,包括符号的定义,变量的定义,段的定义,等
     
  • 语句的形式(指令语句与伪指令语句格式相似):
    指令语句: [标号:] 指令助记符 [操作数(,操作数)] [;注释]
    伪指令语句:[名字] 伪指令定义符(参数…, 参数)[;注释]
     
  • 标号和名字一般最多由31个字母,数字及规定的特殊字符(? @_ $)等组成,且不能用数字开头
     
  • 表达式在汇编语言中有两种:数值表达式及地址表达式

 

一、数值表达式

1. 常数

(1)十进制数

以D结尾,如1234D

在表示十进制数时一般不加后缀D, 但汇编语言提供改变基数的伪指令RADIX

如 RADIX 16,那么这时候不加后缀,默认为16进制数。

(2)十六进制数

以H结尾,如1234H

凡是以字母A-F开头的十六进制数,必须在前面加一个0,如0FFFFH

(3)二进制数

由0,1组成,B结尾, 如0010100B

(4)八进制数

0-7组成,Q结尾,如123Q

(5)字符串常数

用引号括起来的一个或多个字符,串常数的值是包括在绰号中的字符的ASCII代码值,串常数与整常数有时候可以交替使用。

 

2. 算术运算符

包括:+,-,*, / 和MOD(取余)

 

3. 关系运算符

包括: 等(EQ),不等(NE),小于(LT),大小(GT),小于等于(LE),大于等于(GE)

运算结果是一个数字值,若关系不成立,则结果为0,否则结果为0FFFFH

 

4. 逻辑运算符

包括与(AND),或(OR),异或(XOR),非(NOT),还包括逻辑左移(SHL)和逻辑右移(SHR)

逻辑运算的结果是数值

 

5. 在数值表达式中使用的操作符

包括:HIGH,LOW,LENGTH,SIZE,OFFSET,SEG,TYPE,WIDTH,MASK

HIGH/LOW 数值表达式

结果是数值表达式的高/低8位

 

6. 运算符和操作符的优先级

(1)圆括号,尖括号,方括号,圆点符,LENGTH,SIZE,WIDTH,MASK,其中尖括号使用于记录中,圆点使用于结构中

(2)PTR,OFFSET,SEG,TYPE,THIS,冒号,冒号用于段跨越前缀

(3)*,/,MOD,SHL,SHR

(4)HIGH,LOW

(5)+,-

(6)EQ,NE,LT,LE,GT,GE

(7)NOT

(8)AND

(9)OR,XOR

(10)SHORT

 

二、地址表达式

 

包括单个的标号,变量(对应直接寻址方式)和有方括号挺直的基址或变址寄存器

在一个存储器地址上加或减一个数字量,结果仍为存储器地址 如MOV AX,VARW+4,是指变量VARW的偏移+4为偏移的存储单元,而不是VARW的内容+4!

 

这篇文章来自 迷途知返(PWWANG.COM), 转载请注明出处。 版权说明

No comments yet.
;) :| :x :twisted: :roll: :oops: :o :mrgreen: :lol: :idea: :evil: :cry: :arrow: :P :D :?: :? :) :( :!: 8O 8)

你可以使用@somebody:开头, 来邮件通知somebody你回复了他的留言(用户名区分大小写).