【汇编语言 王爽】Debug汇编程序

本文介绍了Debug工具的使用,包括R命令查看和修改CPU寄存器、D命令查看内存内容、E命令改写内存、U命令翻译机器码和T命令执行指令。通过示例展示了如何显示字符串、修改寄存器值以及在内存中写入和执行汇编指令。
摘要由CSDN通过智能技术生成

Debug的使用

我们用到的Debug功能

Debug的命令作用
R命令查看、改变CPU寄存器的内容
E命令改写内存中的内容
D命令查看内存中的内容
U命令将内存中的机器指令翻译为汇编指令
T命令执行一条机器指令
A命令以汇编指令的格式在内存中写入一条机器指令

显示“Hello World”字符串的代码块
以这段代码为例

DATAS  SEGMENT
     STRING  DB  'Hello World!',13,10,'$'
DATAS  ENDS

CODES  SEGMENT
     ASSUME    CS:CODES,DS:DATAS
START:
     MOV  AX,DATAS
     MOV  DS,AX
     LEA  DX,STRING
     MOV  AH,9
     INT  21H
   
     MOV  AH,4CH
     INT  21H
CODES  ENDS
    END   START

使用R指令查看、改变CPU寄存器的内容

使用R指令查看寄存器的内容CS=0771,IP=0000
说明内存0771:0000处的指令为CPU当前要读取、执行的代码。后面的 B8 70 07是这个内存处存储的机器码,对应的汇编指令为MOV AX,0770

还可以用R命令来改变寄存器中的内容

在这里插入图片描述若想要修改一个寄存器中的值,比如AX中的值,可以用R命令后加寄存器名来进行,输入“r ax”后按enter键,会出现“:”作为输入提示,在后面输入要写入的数据后按enter键,就完成了对AX中内容的修改。

使用D命令查看内存中的内容

如果我们想知道内存10000H处的内容,可以用“d 段地址:偏移地址”的格式来查看在这里插入图片描述Debug将输出3部分内容
1.中间是从指定地址开始的128个内存单元的内容,用16进制的格式输出。
2.左边是每行的起始地址。
3.右边是每个内存单元中的数据对应的可显示的ASCII码字符

用E命令改写内存中的内容

在这里插入图片描述可以用“e 起始地址 数据 数据 数据 …”的格式来进行

用E命令向内存中写入机器码,用U命令查看内存中机器码的含义,用T命令执行内存中的机器码

我们要从内存1000:0单元开始写入一段机器码:

b80100          mov ax,0001
b90200          mov cx,0002
01c8              add ax,cx

在这里插入图片描述使用U命令将从1000:0开始的内存单元中的内容翻译为汇编指令,并显示出来在这里插入图片描述使用T命令可以执行一条或多条指令在这里插入图片描述首先使用r指令将cs:ip定向到1000:0处,然后就可以使用t指令执行我们预先写入的机器码对应的汇编语言代码

使用A指令以汇编指令的形式在内存中写入机器指令

在这里插入图片描述直接使用a指令,会从一个预设的地址开始输入指令在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值