
XOR BX,BX MOV BL,AL MOV AX,TAB[BX*2]//为什么这里会报错,而如何用EBX就可以通过呢? MOV XXX,AX
XOREBX,EBXMOVBL,ALMOVAX,TAB[EBX*2]//正确!MOVXXX,AX...
XOR EBX,EBX
MOV BL,AL
MOV AX,TAB[EBX*2]//正确!
MOV XXX,AX 展开
MOV BL,AL
MOV AX,TAB[EBX*2]//正确!
MOV XXX,AX 展开
2个回答
展开全部
1、原因在编译器。
2、
XOR EBX,EBX
MOV BL,AL
MOV AX,TAB[EBX*2]//正确!
MOV XXX,AX
从这几句看出你在编写32码段(即32位地址),MOV XXX,AX,其中下XXX应为地址。
另外MOV AX,TAB[EBX*2]//正确!说明编译器支持。
3、XOR BX,BX MOV BL,AL MOV AX,TAB[BX*2]报错说明编译器不支持。
----------------------- 页635-----------------------
MOV—传送
操作码 指令 64位模式 非64位模式 描述
88 /r MOV r/m8,r8 有效 有效 传送 r8 to r/m8.
REX + 88 /r MOV r/m8***,r8*** 有效 N.E. 传送 r8 to r/m8.
89 /r MOV r/m16,r16 有效 有效 传送 r16 to r/m16.
89 /r MOV r/m32,r32 有效 有效 传送 r32 to r/m32.
REX.W + 89 /r MOV r/m64,r64 有效 N.E. 传送 r64 to r/m64.
8A /r MOV r8,r/m8 有效 有效 传送 r/m8 to r8.
REX + 8A /r MOV r8***,r/m8*** 有效 N.E. 传送 r/m8 to r8.
8B /r MOV r16,r/m16 有效 有效 传送 r/m16 to r16.
8B /r MOV r32,r/m32 有效 有效 传送 r/m32 to r32.
REX.W + 8B /r MOV r64,r/m64 有效 N.E. 传送 r/m64 to r64.
8C /r MOV r/m16,Sreg** 有效 有效 传送段寄存器到 r/m16.
REX.W + 8C /r MOV r/m64,Sreg** 有效 有效 传送 零 扩展 16位段寄存器 to r/m64.
8E /r MOV Sreg,r/m16** 有效 有效 传送 r/m16 to段寄存器。
REX.W + 8E /r MOV Sreg,r/m64** 有效 有效 传送 低16位 of r/m64 to段寄存器。
A0 MOV AL,moffs8* 有效 有效 传送 字节 at (seg:offset)到 AL.
REX.W + A0 MOV AL,moffs8* 有效 N.E. 传送 字节 at (offset) to AL.
A1 MOV AX,moffs16* 有效 有效 传送 字 at (seg:offset) to AX.
A1 MOV EAX,moffs32* 有效 有效 传送 双字 at (seg:offset) to EAX.
REX.W + A1 MOV RAX,moffs64* 有效 N.E. 传送四字at (offset) to RAX.
A2 MOV moffs8,AL 有效 有效 传送 AL to (seg:offset)。***
REX.W + A2 MOV moffs8 ,AL 有效 N.E. 传送 AL to (offset)。
A3 MOV moffs16*,AX 有效 有效 传送 AX to (seg:offset)。
A3 MOV moffs32*,EAX 有效 有效 传送 EAX to (seg:offset)。
REX.W + A3 MOV moffs64*,RAX 有效 N.E. 传送 RAX to (offset)。
B0+ rb MOV r8, imm8 有效 有效 传送 imm8 to r8. ***
REX + B0+ rb MOV r8 , imm8 有效 N.E. 传送 imm8 to r8.
B8+ rw MOV r16, imm16 有效 有效 传送 imm16 to r16.
B8+ rd MOV r32, imm32 有效 有效 传送 imm32 to r32.
REX.W + B8+ rd MOV r64, imm64 有效 N.E. 传送 imm64 to r64.
C6 /0 MOV r/m8, imm8 有效 有效 传送 imm8 to r/m8.
REX + C6 /0 MOV r/m8***, imm8 有效 N.E. 传送 imm8 to r/m8.
C7 /0 MOV r/m16, imm16 有效 有效 传送 imm16 to r/m16.
----------------------- 页636-----------------------
C7 /0 MOV r/m32, imm32 有效 有效 传送 imm32 to r/m32.
REX.W + C7 /0 MOV r/m64, imm32 有效 N.E. 传送 imm32 sign 扩展 到64位 to r/m64.
2、
XOR EBX,EBX
MOV BL,AL
MOV AX,TAB[EBX*2]//正确!
MOV XXX,AX
从这几句看出你在编写32码段(即32位地址),MOV XXX,AX,其中下XXX应为地址。
另外MOV AX,TAB[EBX*2]//正确!说明编译器支持。
3、XOR BX,BX MOV BL,AL MOV AX,TAB[BX*2]报错说明编译器不支持。
----------------------- 页635-----------------------
MOV—传送
操作码 指令 64位模式 非64位模式 描述
88 /r MOV r/m8,r8 有效 有效 传送 r8 to r/m8.
REX + 88 /r MOV r/m8***,r8*** 有效 N.E. 传送 r8 to r/m8.
89 /r MOV r/m16,r16 有效 有效 传送 r16 to r/m16.
89 /r MOV r/m32,r32 有效 有效 传送 r32 to r/m32.
REX.W + 89 /r MOV r/m64,r64 有效 N.E. 传送 r64 to r/m64.
8A /r MOV r8,r/m8 有效 有效 传送 r/m8 to r8.
REX + 8A /r MOV r8***,r/m8*** 有效 N.E. 传送 r/m8 to r8.
8B /r MOV r16,r/m16 有效 有效 传送 r/m16 to r16.
8B /r MOV r32,r/m32 有效 有效 传送 r/m32 to r32.
REX.W + 8B /r MOV r64,r/m64 有效 N.E. 传送 r/m64 to r64.
8C /r MOV r/m16,Sreg** 有效 有效 传送段寄存器到 r/m16.
REX.W + 8C /r MOV r/m64,Sreg** 有效 有效 传送 零 扩展 16位段寄存器 to r/m64.
8E /r MOV Sreg,r/m16** 有效 有效 传送 r/m16 to段寄存器。
REX.W + 8E /r MOV Sreg,r/m64** 有效 有效 传送 低16位 of r/m64 to段寄存器。
A0 MOV AL,moffs8* 有效 有效 传送 字节 at (seg:offset)到 AL.
REX.W + A0 MOV AL,moffs8* 有效 N.E. 传送 字节 at (offset) to AL.
A1 MOV AX,moffs16* 有效 有效 传送 字 at (seg:offset) to AX.
A1 MOV EAX,moffs32* 有效 有效 传送 双字 at (seg:offset) to EAX.
REX.W + A1 MOV RAX,moffs64* 有效 N.E. 传送四字at (offset) to RAX.
A2 MOV moffs8,AL 有效 有效 传送 AL to (seg:offset)。***
REX.W + A2 MOV moffs8 ,AL 有效 N.E. 传送 AL to (offset)。
A3 MOV moffs16*,AX 有效 有效 传送 AX to (seg:offset)。
A3 MOV moffs32*,EAX 有效 有效 传送 EAX to (seg:offset)。
REX.W + A3 MOV moffs64*,RAX 有效 N.E. 传送 RAX to (offset)。
B0+ rb MOV r8, imm8 有效 有效 传送 imm8 to r8. ***
REX + B0+ rb MOV r8 , imm8 有效 N.E. 传送 imm8 to r8.
B8+ rw MOV r16, imm16 有效 有效 传送 imm16 to r16.
B8+ rd MOV r32, imm32 有效 有效 传送 imm32 to r32.
REX.W + B8+ rd MOV r64, imm64 有效 N.E. 传送 imm64 to r64.
C6 /0 MOV r/m8, imm8 有效 有效 传送 imm8 to r/m8.
REX + C6 /0 MOV r/m8***, imm8 有效 N.E. 传送 imm8 to r/m8.
C7 /0 MOV r/m16, imm16 有效 有效 传送 imm16 to r/m16.
----------------------- 页636-----------------------
C7 /0 MOV r/m32, imm32 有效 有效 传送 imm32 to r/m32.
REX.W + C7 /0 MOV r/m64, imm32 有效 N.E. 传送 imm32 sign 扩展 到64位 to r/m64.
展开全部
MOV AX,TAB[BX*2]//
改成ADD BX,BX
mov ax,tab[bx]
mov [],tab[?] ?为寄存器,不是表达式
改成ADD BX,BX
mov ax,tab[bx]
mov [],tab[?] ?为寄存器,不是表达式
追问
在TAB[?],?不是数组的偏移量吗?我的这个是求一个1-9数的立方。用数组来做的。为什么用32位的EBX可以呢,都是寄存器啊!
追答
mov bx,offset tab ;【tab开始的区域放结果,10个,每个占16位】
mov cx,10
jisuan:.......;程序,求结果,存放到AX
mov [bx],ax
ADD bx,2
loop jisuan
这个可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询