【汇编语言】DOXBox 0.74 常用debug命令


 

1.查看、修改寄存器(r命令)

①-r

②-r  ax(要修改的寄存器)

   -:m(输入想要改成什么值)


 

2.查看内存单元(d命令)

①-d

      查看128个内存单元内容。

②-d 段地址:偏移地址

      查看指定地址128个内存单元的内容。

③-d 段地址:偏移地址1  偏移地址2

      查看指定地址1 到 指定地址2 内存单元的内容。

④-d 段地址:偏移地址  Lm

      查看指定地址 开始的m个长度的内存单元内容。


 

3.修改内存单元(e命令)

①-e   段地址:偏移地址  m n q r (修改的值之间用  空格  隔开)

 

②-e  段地址:偏移地址   <enter>

段地址:偏移地址         m               m2           <space>                   n                  <space>                            q      q2    <enter>

   注释:                 (之前的值) (想要改成的值)                       如果不想修改,按space跳过                             修改结束按enter

 


 

4.编写汇编指令(a命令)

 

注:a命令编写汇编指令后,直接用r指令查看,寄存器的值并没有改变!因为没有用t命令、p命令、g命令调试!


 

5.调试汇编指令(t命令、p命令、g命令)

①t命令调试汇编指令

 

注意:      t      =         cs:ip

②g命令调试汇编指令

 

注意:g     =     0:200        0 : 208    

③p命令调试汇编指令

P命令:类似T命令,若有子程序,直接执行完子程序全部指令而不是逐条执行指令,在遇到循环指令时,会直接执行至CX递减至0;


 

6.反汇编(u命令)

 

注意:格式与g命令的区别!!!


 

7.帮助(?)

转载于:https://www.cnblogs.com/Master-Sun/p/9845895.html

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是可以实现该功能的汇编代码: ``` .model small .stack 100h .data table db '+------------------------------+',13,10 db '| | |',13,10 db '+------------------------------+',13,10 .code main proc mov ax, @data mov ds, ax ;显示表头 mov ah, 09h lea dx, table int 21h ;显示表格内容 mov ah, 02h ;设置光标位置 mov bh, 0h ;页面号 mov dl, 17 ;列 mov dh, 3 ;行 int 10h ;BIOS中断,设置光标位置 mov ah, 09h ;打印表格内容 lea dx, table+16 int 21h mov ah, 02h ;设置光标位置 mov bh, 0h ;页面号 mov dl, 34 ;列 mov dh, 3 ;行 int 10h ;BIOS中断,设置光标位置 mov ah, 09h ;打印表格内容 lea dx, table+33 int 21h ;显示表格底部 mov ah, 09h lea dx, table int 21h mov ah, 4ch ;退出程序 int 21h main endp end main ``` 代码解释: 1. `.model small`:指定程序模型为小模型,限制代码和数据的大小。 2. `.stack 100h`:设置栈大小为100h字节。 3. `.data`:定义数据段。 4. `table`:定义一个字符串,用于存放表格的边框和内容。 5. `.code`:定义代码段。 6. `main proc`:定义主程序过程。 7. `mov ax, @data`:将数据段地址存入AX寄存器。 8. `mov ds, ax`:将DS寄存器的设置为数据段地址,以便访问数据段中的变量。 9. `mov ah, 09h`:将AH寄存器设置为09h,以便使用21h中断来显示字符串。 10. `lea dx, table`:将字符串table的地址存入DX寄存器。 11. `int 21h`:调用21h中断来显示字符串。 12. `mov ah, 02h`:将AH寄存器设置为02h,以便使用10h中断来设置光标位置。 13. `mov bh, 0h`:将BH寄存器设置为0h,表示页面号。 14. `mov dl, 17`:将DL寄存器设置为17,表示列。 15. `mov dh, 3`:将DH寄存器设置为3,表示行。 16. `int 10h`:调用10h中断来设置光标位置。 17. `lea dx, table+16`:将字符串table+16的地址存入DX寄存器。 18. `int 21h`:调用21h中断来显示字符串。 19. `mov ah, 02h`:将AH寄存器设置为02h,以便使用10h中断来设置光标位置。 20. `mov dl, 34`:将DL寄存器设置为34,表示列。 21. `lea dx, table+33`:将字符串table+33的地址存入DX寄存器。 22. `int 21h`:调用21h中断来显示字符串。 23. `mov ah, 4ch`:将AH寄存器设置为4ch,表示程序退出。 24. `int 21h`:调用21h中断退出程序。 25. `main endp`:结束主程序过程。 26. `end main`:结束程序。 以上代码实现了在屏幕上显示一个简单的表格,其中使用了汇编语言中的字符串和中断来实现。其中AH寄存器用于指定中断功能,DX寄存器用于存储字符串地址,DL寄存器用于指定列位置,DH寄存器用于指定行位置,BH寄存器用于指定页面号。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值