详解汇编中的PTR操作符应用场景

来源:互联网 发布:非结构化数据举例 编辑:程序博客网 时间:2024/04/30 04:49

PTR是用来建立一个符号地址,但它本身并不分配存储器,只是用来给已分配的存储地址赋予另一种属性,使该地址具有另一种类型。

例举几个例子来说明这个问题:

MOV [BX], 5;由于汇编程序不能分清把立即数是存入字单元还是字节单元,所以此时必须用PTR操作符来说明属性,如:MOV BYTE PTR [BX],5;或者,MOV WORD PTR [BX],5;

MOV AX,BX; 是把BX寄存器中的值赋予AX,由于二者都是寄存器,长度已经确定为字,所以没有必要指定PTR操作符。

定义2个变量:BVAL DB 100;WVAL DW 1002;

MOV AL,BVAL就不需要指定PTR操作符,因为两者都已经确定是一个字节。
MOV CL,WVAL就需要指定PTR操作符,因为前者是一个字节,后者是一个字

总结:

  • 当两个操作数类型相同时,则不需要指定PTR操作符。
  • 当两个操作数中没有寄存器时一定要指定PTR操作符,要不然内存是片连续的区域,操作就乱了。
  • 通过寄存器名指明要处理的数据的尺寸,则不需要指定PTR操作符。如:MOV AX,1
0 0
原创粉丝点击