汇编语言入门关于DEBUG的问题
我们老师布置了作业,要求在DEBUG下调试一些命令,比如MOVAX,[SI]MOVAX,1234[DI]一类,但是我用DEBUG的时候总是有些问题。是在DEBUG下用A【...
我们老师布置了作业,要求在DEBUG下调试一些命令 ,比如
MOV AX,[SI]
MOV AX,1234[DI]
一类,但是我用DEBUG的时候总是有些问题。
是在DEBUG下用A【地址】指令开始汇编的吧?
1 为什么我很简单的程序
-a100
,0100: mov ax,1
一用G命令就跳出DEBUG呢?
2 我在AX,BX,CX,DX,SI都是0000的情况下运行命令
MOV AX,[SI]
结果出现了
AX=E96E BX=0000 CX=32AA DX=00B8 SP=00FA SI=0001
的结果,这条命令不是应该将SI与SI+1赋值给AX吗?
3 为什么我用MOV命令时不能写诸如
MOV AH,0100H
之类的指令?一写就报ERROR
关于第三个问题重点是不能在后面加H,,,,加了就报错 原题中的AH是刚学粗心的笔误。。。 展开
MOV AX,[SI]
MOV AX,1234[DI]
一类,但是我用DEBUG的时候总是有些问题。
是在DEBUG下用A【地址】指令开始汇编的吧?
1 为什么我很简单的程序
-a100
,0100: mov ax,1
一用G命令就跳出DEBUG呢?
2 我在AX,BX,CX,DX,SI都是0000的情况下运行命令
MOV AX,[SI]
结果出现了
AX=E96E BX=0000 CX=32AA DX=00B8 SP=00FA SI=0001
的结果,这条命令不是应该将SI与SI+1赋值给AX吗?
3 为什么我用MOV命令时不能写诸如
MOV AH,0100H
之类的指令?一写就报ERROR
关于第三个问题重点是不能在后面加H,,,,加了就报错 原题中的AH是刚学粗心的笔误。。。 展开
2个回答
展开全部
-a100
,0100: mov ax,1
一用G命令就跳出DEBUG呢?
用G得遇到INT20才能停 ,你mov ax,1之后的指令都是无用指令 造成DEBUG 中断
MOV AX,[SI]
是将 DS:[SI] 这个内存空间的字数据传送给AX寄存器
就是说假如DS=2000 SI=0200 那么就是把2000:0200(即200200)这个内存开始的字数据传送给AX
MOV AH,0100H
操作数与寄存器的大小应该是对应的 AH是8位寄存器 而0100H是16位数据
所以不能操作
,0100: mov ax,1
一用G命令就跳出DEBUG呢?
用G得遇到INT20才能停 ,你mov ax,1之后的指令都是无用指令 造成DEBUG 中断
MOV AX,[SI]
是将 DS:[SI] 这个内存空间的字数据传送给AX寄存器
就是说假如DS=2000 SI=0200 那么就是把2000:0200(即200200)这个内存开始的字数据传送给AX
MOV AH,0100H
操作数与寄存器的大小应该是对应的 AH是8位寄存器 而0100H是16位数据
所以不能操作
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询