D:\masm>debug
-a
0B0F:0100 xor ax,ax
0B0F:0102 mov bx,1
0B0F:0105 add ax,bx
0B0F:0107 inc bx
0B0F:0108 cmp ax,3e8 ————这里是1000的十六进制。debug中的数据都是十六进制的
0B0F:010B jbe 0105
0B0F:010D
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B0F ES=0B0F SS=0B0F CS=0B0F IP=0100 NV UP EI PL NZ NA PO NC
0B0F:0100 31C0 XOR AX,AX
-g 010d
AX=040B BX=002E CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B0F ES=0B0F SS=0B0F CS=0B0F IP=010D NV UP EI PL NZ NA PO NC
0B0F:010D A1B817MOV AX,[17B8] DS:17B8=5E08
-
结果是040bh
debug不支持符号变量名和标号,一般采用单段式程序,在debug中编程的方法,与写一个.com格式的可执行文件结构类似。你的问题不确定,不知道学号什么的从何而来。
建议:
先按COM程序格式编好程序,再在DEBUG中用A命令输入汇编,输入时所有符号地址改成具体的直接地址,就可以了。
范例a 命令支持所有形式的间接注册命令,如下例所示:
add bx,34[bp+2].[si-1]
pop [bp+di]
push [si] )
还支持所有 *** 作码同义词,如下例所示:
loopz 100
loope 100
ja 200
jnbe 200
对于 8087 *** 作码,必须指定 wait 或 fwait 前缀,如下例所示:
fwait fadd st,st(3) this line assembles
an fwait prefix
Debug:C(比较)
比较内存的两个部分。
c range address
参数
range
指定要比较的内存第一个区域的起始和结束地址,或起始地址和长度。有关有效的 range 值的信息,请单击“相关主题”列表中的“Debug 说明”。
address
指定要比较的第二个内存区域的起始地址。有关有效 address 值的信息,请单击“相关主题”列表中的“Debug 说明”。
说明
如果 range 和 address 内存区域相同,Debug 将不显示任何内容而直接返回到 Debug 提示符。如果有差异,Debug 将按如下格式显示:
address1 byte1 byte2 addess2
范例
以下命令具有相同效果:
c100,10f 300
c100l10 300
每个命令都对 100h 到 10Fh 的内存数据块与 300h 到 30Fh 的内存数据块进行比较。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)