汇编语言中,字节操作和字操作,到底什么时候要强调?!

如上图,因为是题目要求,字节、字 所以强调了WORD BYTE
那么平时 的 汇编呢,?我是个初学者 抱歉,不懂
什么时候就一定要 强调这是 字 ,or字节啊》》??

2.我看到有ptr byte ptr word 这个PTR指令怎么用??什么时候用啊?
补充问题,:有人说是“在没有寄存器名存在的情况下” 这是什么意思啊?能不能说清楚些》》??
原文如下:在没有寄存器参与的内存单元访问指令中,必须要显性地告诉CPU所要访问的单元是字单元,还是字节单元。
在没有寄存器名存在的情况下,用操作符“X ptr”指明内存单元的长度,X在汇编指令中可以为word 或者byte。例如:mov word ptr ds:[0],1inc word ptr [bx]move byte ptr ds:[0],1inc byte ptr [bx]

x86 CPU 可以执行 16 位数的指令,也可以执行 8 位数的指令。
指令中,如果不说明白位数是多少,CPU 就不干了。
--------
MOV CX, 200
INC AL
这种指令,使用了寄存器,这就非常清楚的说明了位数。
--------
mov ds:[0],1 ,这种指令,使用了存储器。
而对于存储器,可以进行两个字节、也可以进行一个字节的传送。
这条指令,究竟是多少位的?
这就让 CPU 糊涂了。

必须写成:
mov word ptr ds:[0],1,加上了《word ptr》,就是《字属性》,就是16位数的传送。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-15
俩问题是一个意思,不能确定内存单元长度时,就必须用X ptr说明。

对于8086来说,指令中有寄存器或pop、push指令。
1、指令中有寄存器,就可确定内存单元长度或操作数尺寸,如:
mov ax,1
mov bx,ds:[0]等,操作数为2字节,字单元(16位)。
mov al,1
mov bh,ds:[0]等,操作数为1字节,字节单元(8位)。

2、指令中有pop、push,操作数为2字节,字单元(16位)。
以上两种情况都可确定内存单元长度或操作数尺寸,不需用X ptr说明。

X ptr是说明内存单元长度或操作数尺寸的。凡是不能确定内存单元长度或操作数尺寸的,就必须用X ptr说明。
相似回答