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 21是DOS功能调用,AH是功能号,09是显示字符串,4c是退出程序,类似于ExitProcess(nCode)
中断和API的区别:
1.中断可以由硬件直接提供
2.中断工作于r0,API工作于r3
debug常用命令:
-a 允许用户输入汇编指令
-u 以汇编指令显示
-d 显示dump
-e 允许输入
-r 显示寄存器
-n 命名文件
-w指令写文件时,cx指定写多少字节
-p单步步过

浙公网安备 33010602011771号