汇编语言错误 mov ax,es:[bx]
在windows下,开始--》运行--》debug回车。-amovax,es:[bx];提示^Errormovax,ds:[bx];提示^Errormovax,[bx];...
在windows下,开始--》运行--》debug回车。
-a
mov ax,es:[bx]; 提示 ^Error
mov ax,ds:[bx]; 提示 ^Error
mov ax, [bx]; 正常
以上语句中,第二mov和第三个mov应该是一样的啊,为什么加上段超越前缀就报错呢?
"Win32是flat模式啊,没事你修改段寄存器干嘛 "
做实验啊,实验指导书上要求的.....
你的意思是在dos下就没问题喽?? 展开
-a
mov ax,es:[bx]; 提示 ^Error
mov ax,ds:[bx]; 提示 ^Error
mov ax, [bx]; 正常
以上语句中,第二mov和第三个mov应该是一样的啊,为什么加上段超越前缀就报错呢?
"Win32是flat模式啊,没事你修改段寄存器干嘛 "
做实验啊,实验指导书上要求的.....
你的意思是在dos下就没问题喽?? 展开
展开全部
在DEBUG中,段超越前缀要作为单独一行输入。如,
-a
0AF1:0100 es:
0AF1:0101 mov ax,[bx]
0AF1:0103 ds:
0AF1:0104 mov ax,[bx]
0AF1:0106 mov ax,[bx]
0AF1:0108
-q
-a
0AF1:0100 es:
0AF1:0101 mov ax,[bx]
0AF1:0103 ds:
0AF1:0104 mov ax,[bx]
0AF1:0106 mov ax,[bx]
0AF1:0108
-q
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-11-07
展开全部
debug本身和debug调试的程序都不是Win32程序,需要用到段
就像二楼说的如果段是DS的话不要加段前缀
如果不是DS的话要在需要改变段的那条指令前加ES,CS,SS等
-a
0B4A:0100 ES:
0B4A:0101 mov ax,[bx]
0B4A:0103
-u
0B4A:0100 26 ES:
0B4A:0101 8B07 MOV AX,[BX]
就像二楼说的如果段是DS的话不要加段前缀
如果不是DS的话要在需要改变段的那条指令前加ES,CS,SS等
-a
0B4A:0100 ES:
0B4A:0101 mov ax,[bx]
0B4A:0103
-u
0B4A:0100 26 ES:
0B4A:0101 8B07 MOV AX,[BX]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有如下代码:
mov ax,ds:[bx]
mov ax,es:[bx]
编译后:
用debug 查看(如下):
13EE:0000 8B07 MOV AX,[BX]
13EE:0002 26 ES:
13EE:0003 8B07 MOV AX,[BX]
mov ax,ds:[bx]
mov ax,es:[bx]
编译后:
用debug 查看(如下):
13EE:0000 8B07 MOV AX,[BX]
13EE:0002 26 ES:
13EE:0003 8B07 MOV AX,[BX]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Win32是flat模式啊,没事你修改段寄存器干嘛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询