汇编中的word ptr里的ptr是什么意思?

2025-03-11 01:29:13
推荐回答(3个)
回答1:

ptr -- pointer (指针)缩写。

汇编里面 ptr 是规定的字 (保留字)。

mov ax,bx ;是把BX寄存器“里”的值赋予AX,由于二者都是word型,不用wordmov ax,word ptr [bx];是把内存地址等于“BX寄存器的值”的地方所存放的数据,赋予ax。

由于只是给出一个内存地址,不知道希望赋予ax的,是byte还是word,所以需要用word明确指出!

扩展资料;

优点

汇编语言作为机器语言之上的第二代编程语言,它也有很多优点:

1,可以轻松的读取存储器状态以及硬件I/O接口情况。

2,编写的代码因为少了很多编译的环节,可以能够准备的被执行。

3,作为一种低级语言,可扩展性很高 。

缺点

1,因为代码非常单调,特殊指令字符很少,所以造成了代码的冗长以及编写的困难

2,因为汇编仍然需要自己去调用存储器存储数据,很容易出现BUG,而且调试起来也不容易

3,就算完成了一个程序,后期维护时候也需要耗费大量的时间。

4,因为机器的特殊性造成了代码兼容性差的缺陷。

参考资料来源:百度百科-汇编语言

回答2:

mov ax,word ptr [bx];是把内存地址等于“BX寄存器的值”的地方所存放的数据,赋予ax。由于只是给出一个内存地址,不知道希望赋予ax的,是byte还是word,所以需要用word明确指出! ptr是显示申明(还是声明?)
所以,当两个操作数的宽度不一样时,就要用到,
这里的宽度是指bit说简单点就是 16位的还是8位的!
cpu内部的寄存器,是16位的,(老了吧?)
而内存的单位寻址是8位的,所以他们的宽度不一样
就需要显示声明ptr,
当你用dw和dt、db等时,就需要他来显示声明了,

回答3:

x86 CPU 可以执行 16 位数的指令,也可以执行 8 位数的指令。

位数,究竟是多少?

在指令中,你如果不写清楚,CPU 就无法干活。

针对寄存器的指令,如:

  MOV CX,200、

  INC AL

寄存器的位数,就是非常清楚的。

--------

而,针对存储器的指令,如:

  MOV [BX],20H。

则有可能是一个字节、或两个字节的传送。。。

位数,不确定,CPU 就无法执行。

--------

那么,这条指令,就必须如下写:

 MOV BYTE PTR [BX],20H

 MOV WORD PTR [BX],20H

 MOV DWORD PTR [BX],20H

分别代表:8 位数、16 位数、32 位数的传送。