所以就加上WORD PTR指定这一次将X变量地址当成字类型变量使用。\x0d\x0a\x0d\x0aMOV 是数据传送指令。\x0d\x0a前面一个操作数 WORD PTR X是目的操作数,也就是说数据住这儿存放。其中,X是变量名。\x0d\x0a后面的AX是通用寄存器中的16位累加器。
[bx]表示以DS为段寄存器,BX中的数据作偏移地址,也就是DS:[BX]内存单元中的数据。因为AX寄存器本身就是2字节的,所以即使这里省略掉WORD PTR也一样可以正确执行
楼主应该这样理 1.word ptr 即指定了操作数INDATA[SI-2]类型为字(二字节) 其实对于包含寄存器AX的操作数为立即数的指令完全可以不用word ptr 编译器直接可以认定操作数是一个字型数据。如:mov ax,0 或 mov ax,[di]则直接编译成功 2.既然SI指向数据段的首地址(一般为0),那么SI肯定指向了0FFH这个字节数据...
mov ax,bx ;是把BX寄存器“里”的值赋予AX,由于二者都是word型,所以没有必要加“WORD” mov ax,word ptr [bx];是把内存地址等于“BX寄存器的值”的地方所存放的数据,赋予ax。由于只是给出一个内存地址,不知道希望赋予ax的,是byte还是word,所以需要用word明确指出! 所以,当两个操作数的宽度不一样时,就要用...
(1) MOV AX,[BX] (2) MOV DS,BX (3) MOV ES,AX (4) MOV AL,DL (5) PUSH AX (6) ADD [BX],DI (7) LEA BX,V (8) MOV DX,OFFSET V (9) MOV WORD PTR [SI],AX (10) MUL BX (11) DIV BX (12) MOV BYTE PTR [SI],2 (13) MOV AX,[BX+SI] (14) SHR AX,1 (...
如:MOV [BX],20H。则有可能是一个字节、或两个字节的传送。。。位数,不确定,CPU 就无法执行。--- 那么,这条指令,就必须如下写:MOV BYTE PTR [BX],20H MOV WORD PTR [BX],20H MOV DWORD PTR [BX],20H 分别代表:8 位数、16 位数、32 位数的传送。
MOV AX,WORD PTR DS:[ECX+EBP*2]很久不用了 分析一下 MOV 汇编语言的移动命令 AX DS ECX EBP 都是寄存器 WORD PTR 表示2字节的字型数据 简单说是将AX的数据移动到DS寄存器 冒号 中括号里的具体含义我已经想不起来了
MOV AX,WORD PTR[BX]指令中源操作数[BX]是寄存器间接寻址,前面的WORD PTR指明内存操作数为字类型。指令执行后把偏移地址为3的字单元的内容传给AX。所以答案选A。 [*]结果一 题目 根据下面的指令和伪指令序列 TAB DW 1,2,3,4,5,6 ENTRY EQU 3 MOV BX,OFFSET TAB ADD BX,ENTRY MOV AX,WORD PT...
一、汇编语言中PTR的含义及作用 mov ax,bx ;是把BX寄存器“里”的值赋予AX,由于二者都是word型,所以没有必要加“WORD” mov ax,word ptr [bx];是把内存地址等于“BX寄存器的值”的地方所存放的数据,赋予ax。由于只是给出一个内存地址,不知道希望赋予ax的,是byte还是word,所以需要用word明确指出!
错误示例2:MOV CS,AX,CS的值不可以作为目标操作数。 正确示例:虽然将CS的内容传到寄存器里在实际中可能没意义,但可以写为MOV AX,CS;若需要修改段寄存器,可以通过其他寄存器中转,如MOV BX,1000H; MOV DS,BX。 错误示例3:MOV DATA,WORD PTR AH,PTR无法对寄存器进行操作,且数据类型不匹配。 正确示例:MOV ...