Debug功能:
用Debug的R命令查看、改变CPU寄存器的内容;
用Debug的D命令查看内存中的内容;
用Debug的E命令改写内存中的内容;
用Debug的U命令将内存中的机器指令翻译成汇编指令;
用Debug的T命令执行一条机器指令;
用Debug的A命令以汇编指令的格式在内存中写入一条机器指令;
各个寄存器的作用:
AH&AL = AX(accumulator):累加寄存器
BH&BL = BX (base):基址寄存器
CH&CL = CX (count):计数寄存器
DH&DL = DX(data):数据寄存器
SP (Stack Pointer):堆栈指针寄存器
BP (Base Pointer):基址指针寄存器
SI (Source Index):源变址寄存器
DI (Destination Index):目的址寄存器
IP (Instruction Pointer):指令指针寄存器
CS (Code Segment):代码段寄存器
DS (Data Segment):数据段寄存器
SS (Stack Segment):堆栈段寄存器
ES (Extra Segment):附加段寄存器
add&sub
add相加指令进位舍掉,sub指令借位保留;
mul
mul相乘指令,如果是8位乘法,结果默认放在AX中,如果是16位乘法,结果高位默认放在
DX中,低位放在AX中;
div
div除法指令,如果被除数是16位,除数是8位,则除数默认放在AX中;如果被除数是32位,除数是16位,则除数高16位放在DX中,低16位放在AX中;
结果:如果除数为8位,则AL存储商,AH存储余数。如果除数为16位,则AX存储商,DX存储余数;
shl,shr
shl左移指令,shr右移指令;
inc,dec
inc自加指令,dec自减指令;
xchg
xchg交换指令;
neg
按位取反,末尾加一;
DS寄存器不能直接移入立即数,因为要想设置DS数据段寄存器,可以先找一个中转寄存器如AX;