伪指令

本贴最后更新于 1666 天前,其中的信息可能已经物是人非

PROC 伪指令

  过程可以非正式地定义为:由返回语句结束的已命名的语句块。过程用 PROC 和 ENDP 伪指令来定义,并且必须为其分配一个名字(有效标识符)

main PROC
'
'
main ENDP

PTR 运算符

  PTR 运算符可以用来重写一个已经被声明过的操作数的大小类型。只要试图用不同于汇编器设定的大小属性来访问操作数,那么这个运算符就是必须的。

  例如,假设想 要将一个双字变量 myDouble 的低 16 位传送给 AX。由于操作数大小不匹配,因此,汇编器不会允许这种操作。

.data  
 ; 定义变量  
sum DWORD 0  
myDouble DWORD 12345678h

.code
main PROC
	; coding here
	mov ax, WORD PTR myDouble
	INVOKE ExitProcess,0 ; 调用windows服务停止程序,并将控制权交给操作系统
main ENDP
end main

  注意,PTR 必须与一个标准汇编数据类型一起使用,这些类型包括:BYTE、SBYTE、WORD、DWORD、SDWORD、FWORD、QWORD 或者 TBYTE。

lea 指令

  lea 指令,即装入有效地址指令,它将内存单元的地址松动指定的寄存器。它的操作数虽然也是内存单元,但是它获取到的是内存单元的地址,而不是内存单元中的数据。

ALIGN 伪指令

  ALIGN 伪指令将一个变量对齐到字节边界、字边界、双字、边界或段落边界。
  为什么要进行数据对齐?因为对于存储于偶地址和奇地址的数据来说,CPU 处理偶地址数据的速度要快得多。

数据类型伪指令

  DB 伪指令可以定义有符号或者无符号得 8 位变量 BYTE
  DW 16 位 字
  DD 32 位 双字
  DQ 64 位 四字

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...