在DOSBox中输入debug,然后: R 查看和修改CPU寄存器的内容 r r ax AX 0000 :**** D 查看内存 d 1000:0 d 短地址:起始偏移地址 结尾偏移地址 E 改写内存中的内容 e 1000:0 ** ** ** ** //从1000:0处开始写入内存 d 1000:10 e 1000:10 <回车> //从1000:10处开始逐个改写内存 6D.** 72.** 33.** d 1000:10 e 1000:0 'a' 'b' 'c' 3 4 5 "aaa" "bbb" //可以写入字符 数字 字符串 U 将机器指令翻译为汇编指令 u 1000:0
A 以汇编格式在内存中写入一条机器指令 a 1000:0 1000:0000 mov ax,1 ... ... 1000:000f<回车> T 执行一条机器指令 t //执行cs:ip指向的指令 P 将循环执行完/执行到 int 21h 处 G 0016 执行到0016处 ----------------------- rf 修改标志寄存器的值 Q 退出debug
地址寄存器 es 段地址 ds 存放要访问数据的段地址 ss 堆栈段,与sp配合使用 sp 堆栈偏移地址,与ss配合 cs:ip 指向要执行的指令地址 ds:si 源地址 es:di 目的地址 -------------------------- 数据寄存器(都可分高低位) ax 累加寄存器(ah,al) bx 基址寄存器 cx 计数寄存器 dx 数据寄存器 -------------------------- 标志寄存器 zf 零寄存器 zero flag cf 无符号进位标志 carry flag of 有符号溢出标志 overflow flag pf 奇偶标志位 parity flag sf 负号标志位 symbol flag cld df=0 正向复制 std df=1 反向复制