01. debug的使用

DOS汇编中字符串结束标志是美元符号$

DOS操作系统会把com文件装载到0x100的位置并执行代码

 

debug命令:

assemble     A [address]

compare      C range address

dump         D [range]

enter        E address [list]

fill         F range list

go           G [=address] [addresses]

hex          H value1 value2

input        I port

load         L [address] [drive] [firstsector] [number]

move         M range address

name         N [pathname] [arglist]

output       O port byte

proceed      P [=address] [number]

quit         Q

register     R [register]

search       S range list

trace        T [=address] [value]

unassemble   U [range]

write        W [address] [drive] [firstsector] [number]

allocate expanded memory        XA [#pages]

deallocate expanded memory      XD [handle]

map expanded memory pages       XM [Lpage] [Ppage] [handle]

display expanded memory status  XS

 

 

 

C:\Documents and Settings\51asm\??>debug a.com

-u

0B84:0100 BA0801        MOV     DX,0108

0B84:0103 B409          MOV     AH,09

0B84:0105 CD21          INT     21

0B84:0107 C3            RET

 

以上汇编相当于

short dx = 0x108;

char ah = 9;

int21(ah,dx);

return;

 

 

INT 21DOS功能调用,AH是功能号,09是显示字符串,4c是退出程序,类似于ExitProcess(nCode)

 

中断和API的区别:

1.中断可以由硬件直接提供

2.中断工作于r0API工作于r3

 

debug常用命令:

-a 允许用户输入汇编指令

-u 以汇编指令显示

-d 显示dump

-e 允许输入

-r 显示寄存器

-n 命名文件

-w指令写文件时,cx指定写多少字节

-p单步步过

posted @ 2020-09-02 22:33  八转达人  阅读(221)  评论(0)    收藏  举报