关于8086汇编的寻址方式一题:MOV [1200],23H 请指出该指令的正误

R.T.
MOV [1200],23H
我看这条指令有一些问题。首先,[1200]能表示内存地址么?常用的表示方式不是十六进制数,[1200H]这种?第二个,同学告诉我说不能直接对内存地址赋值,需要一个通用寄存器AL,是这样吗?

帮你调试过了,[xxxxh ]里如果是数的话不能表示地址的。要显式地给出段地址,如ds:[xxxxh ]才行,否则编译时会被处理成一个立即数xxxxh。[ ]里是什么进制这个无所谓的比如写10和写0aH效果一样,都可以。你同学是对的。因为不知道这个内存地址有多长。或者像上楼所说。用mov byte ptr ds:[xxxxh], 23h这样,或mov word ptr ds:[xxxxh], 23h。注意一定要写上ds,否则会报错的,我试过了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-13
[1200]是可以这么写的,你也说了常用的是16进制,因为16进制和2进制容易转换,但是用十进制也可以啊。
后面直接写数的话,不能确定数的类型,即不知道是字节还是字的操作。可以这么写:
MOV BYTE PTR [1200],23H
说明是字节操作。追问

呃,,,直接这么写也算是对的咯?

追答

就是逗号两边的数据类型得一样。可以直接写数字的。

第2个回答  2019-03-14
首先这个指令时错误的,错在没有指明数据类型可以改为
MOV BYTE PTR[1200],23H
第3个回答  2011-11-19
可以的,这个【1200】在这里作为偏移地址,再加上它的段基址DS * 16,就是物理地址了。可以直接赋值。
第4个回答  2011-11-13
这样应该可以的 你用编译器编译下看看就知道了

关于8086汇编的寻址方式一题:MOV [1200],23H 请指出该指令的正误
你同学是对的。因为不知道这个内存地址有多长。或者像上楼所说。用mov byte ptr ds:[xxxxh], 23h这样,或mov word ptr ds:[xxxxh], 23h。注意一定要写上ds,否则会报错的,我试过了。

8086汇编语言限幅处理代码
;在中间,所以前面要加一条POP语句 N = N-1 ;,且N=2,同样要加JMP语句跳到EXIT.LX2: POP AX ;此时弹出的是X<100,堆栈中分布 ;在最上面,不需要加POP语句,后面有 ;两个字,所以N=4 ;此处,MOV语句前应该是EXIT标号的位置 MOV [DI],AL RET N XF ENDP ;因此,你的程序刚开始N=2这条...

关于8086寻址方式
(1)立即寻址方式:操作数含在指令代码中,由指令直接给出。例如:MOV AL,50 MOV BX,1000H (2)寄存器寻址方式:指令中指定某个寄存器的内容作为操作数。例如:MOV AL,BL ADD AL,5 MOV DATA,AL (3)直接寻址方式:指令中直接给出操作数的地址(偏移地址)。例如:MOV AL,[100H]MOV BX,ES...

8086寻址方式
计算物理地址的方式在解答中已经说得很清楚了,PA = DS * 16d (10h) + SI = 12000h,在地址12000处存放的字类型数据是318bh,因为mov BX, [SI]采用的是间接寻址方式,[SI]也就是318bh,显然BX也为318bh。

8086指令系统的寻址方式有哪些???
寻址方式:1.立即寻址方式 功能:操作数紧跟在操作码之后,直接把操作数从内存里送进寄存器;操作数直接存放在指令中,它作为指令的一部分存放在代码段里,这种操作数称为立即数;立即寻址方式用来表示常数,它经常用于给寄存器赋初值,并且只能用于源操作数字段,不能用于目的操作数字段;格式:mov al,1h...

汇编8086寻址基础问题
存储区可以分为数据段、附加段、堆栈段和代码段,其中前三种都可以用来存储数据,最后一种存储指令的代码。在直接寻址方式中,你没有写段超越前缀的话,默认是数据段,所以数据的物理地址是32000H,同时由于8086存储是以字节为单位的,所以低地址存放低字节,高地址存放高字节,所以组合成一个字就是1234...

8086汇编语言指令的寻址方式有哪几类
80x8汇编语言寻求方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、相对寻址、变址寻址。.寻址方式举例如下:MOV AX, 20B5H ;立即寻址,立即数20B5送入AX MOV AX,[0100H] ;直接寻址,内存偏移首址为0100H的双字节数据送AX MOV AX,BX ;寄存器寻址,BX内容送入AX MOV AX,[BX] ...

8086指令系统的寻址方式有哪些???
以 MOV 指令为例 1. 立即寻址方式* —— 操作数在指令中给出 MOV AL, 5 MOV AX, 3064H 只能用于SRC字段 ? MOV 5, AL SRC 和 DST的字长一致 ? MOV AH, 3064H 2. 寄存器寻址方式* —— 操作数在指定的寄存器中 MOV AX, BX MOV AL, BH 字节寄存器只有 AH AL BH BL CH CL DH DL...

关于MOV指令的改错
1. MOV 3, SI 8086的指令格式是先写目标操作数,然后是源操作数 2. MOV CH, 1234H ch是8位的,不可以传送16位 3. MOV [BX], 33H BX是可以做寄存器相对寻址的,但是内存单元是16位的,并不是8位。4. MOV AX, CL 目标和源的位数不符 5. MOV AL, [BX]同3,因为对内存单元的访问都...

8086汇编语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度...
立即数寻址 寄存器寻址 直接寻址 寄存器间接寻址 基址寻址 变址寻址 基址加变址寻址 立即数寻址执行速度最快,因为此种寻址方式,取指令时操作数也一起取出,不需要再次取操作数,所以执行速度最快。

相似回答