【x86汇编】第三章:宏汇编语言的表达式

表达式

常量

常量分为:

  • 数值常量:MOV AX, 10H
  • 符号常量:VAR EQU 20

数值常量可以是:

  • 二进制:0101B
  • 八进制:123Q 或者 123O
  • 十进制:467 或者 467D
  • 十六进制:0FFH
  • 字符常量:‘123abc’ “hello”

数值表达式

算术运算:

  • 加、减、乘、除、取模(MOD)、左移(SHL)、右移(SHR)
  • 注意负数的取模,根据商的值进行推算(不同语言,商可能不同)

逻辑运算:

  • 相等(EQ)、不等(NE)、小于(LT)、大于(GT)、小于等于(LE)、大于等于(GE)
  • 运算结果为特殊常量:成立,为0FFFFH,不成立为0

变量

变量的属性:

  • 段属性:所在段的段首址
  • 偏移地址:相对段首址的EA
  • 类型:存取所需要的字节数

变量的定义使用伪指令:DB、DW、DD、DF、DQ、DT

定义格式: [变量名] 数据定义伪指令 表达式
表达式有以下几种形式:

  • 数值表达式:VAR DB 10
  • ASCII字符串:BUF DB ‘abc123’
  • 地址表达式:只适用于DW和DD,16位段中,DW取该地址的EA,DD取段首址和EA,32位段取EA
  • ?:表示不进行初始化赋值
  • 重复子句:n DUP(表达式)
  • 上述形式的组合,逗号隔开

标号

标号是机器指令语句存放地址的符号表示,也可以是子程序名
标号的属性:

  • 段属性:所在段的段首址
  • 偏移地址:到段首址的EA
  • 类型:NEAR和FAR,NEAR类型的标号,只能段内使用

地址表达式

  • 地址表达式是由变量、标号、常量、寄存器的内容,和运算符组成的
  • 如果地址表达式中出现了变量、标号,则取它的EA参与运算

属性定义算符PTR

指明该地址的操作数,是什么数据类型,或者临时改变操作数的类型,不能改变寄存器和立即数的类型

类型 PTR 地址表达式

例如:WORD PTR [SI]
类型:BYTE、WORD、DWORD、FWORD、NEAR、FAR

定义类型运算符THIS

指定下一个能分配的存储单元的类型,往往与EQU、=等连用

THIS 类型

跨段前缀算符

用于临时给变量、标号指明段属性

段寄存器:地址表达式

属性分离运算符

分离出变量、标号的段、EA和类型

  • 取段址运算符SEG:取出段首址
  • 取偏移地址算符OFFSET:取出EA
  • 取类型运算符TYPE:取出变量或标号的类型

其它算符

  • 取变量存储单元个数LENGTH:它的取值根据定义该变量时,数据定义伪指令后面的一个表达式而定
  • 取变量所含数据存储区大小算符SIZE:其值为LENGTH * TYPE
  • 字节分离算法:HIGH和LOW

常用运算符优先级

运算优先级

常用的机器指令语句

操作规定:

  • 目的操作数与源操作数,必须类型相同
  • 目的操作数不能是立即数
  • 目的操作数与源操作数,不能都存储在寄存器
  • 运算完后,结果送入目的操作数,源操作数不变

数据传送指令

  • 一般数据传送指令:MOV、MOVSX、MOVZX、XCHG、XLAT
  • 堆栈操作指令:PUSH、PUSHA、PUSHAD、POP、POPA、POPAD
  • 标志寄存器传送指令:PUSHF、PUSHFD、POPF、POPFD、LAHF、SAHF
  • 地址传送指令:LEA、LDS、LES、LFS、LGS、LSS
  • 输入输出指令:IN、OUT

影响标志位的指令:SAHF、POPF、POPFD

一般数据传送指令

传送指令
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
x86汇编语言:从实模式到保护模式》是一本经典的计算机软件和硬件教材。该书通过详细讲解x86汇编语言的实模式和保护模式两个阶的特点和转换过程,帮助读者深入了解计算机的底层工作原理。 实模式是早期x86处理器的工作模式,它具有简单和直接访问内存的特点,但存在一些限制,例如只能寻址最多1MB的内存空间。《x86汇编语言:从实模式到保护模式》首先介绍了实模式的基本概念和操作指令,然后通过实际的编程示例,让读者熟悉实模式下的汇编语言编程。 接着,《x86汇编语言:从实模式到保护模式》详细介绍了保护模式的内存管理、特权级和中断处理等概念和机制。保护模式是现代操作系统常用的工作模式,它具有更强大的内存管理能力和安全性,可以有效地利用计算机的资源。通过学习保护模式的相关知识,读者可以了解操作系统的内核和应用程序的执行过程,并且能够编写更强大和高效的程序。 《x86汇编语言:从实模式到保护模式》还介绍了x86处理器的特殊指令和编程技巧,例如x87浮点指令和SSE指令集等。这些指令和技巧可以提高程序的性能和效率,使程序员能够充分发挥x86体系结构的优势。 总之,《x86汇编语言:从实模式到保护模式》是一本全面且实用的教材,通过对x86汇编语言的学习,读者可以更深入地了解计算机的底层原理和操作系统的工作方式。无论是想成为程序员还是深入研究计算机体系结构的人员,这本书都是一本必读之作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值