求助:汇编语言,会用debug编写程序的

求助:汇编语言,会用debug编写程序的,第1张

在debug中编程的情况如下:

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 的内存数据块进行比较。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11826914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存