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
展开
 我来答
三娘901117
2012-06-14 · TA获得超过239个赞
知道小有建树答主
回答量:332
采纳率:0%
帮助的人:306万
展开全部
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.
LLChina99
2012-06-14 · TA获得超过1483个赞
知道小有建树答主
回答量:574
采纳率:0%
帮助的人:534万
展开全部
MOV AX,TAB[BX*2]//
改成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
这个可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式