栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

MASM调试汇编代码(命令行方式)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MASM调试汇编代码(命令行方式)

MASM调试汇编代码(命令行方式)

以 【输出helloworld】为例,讲解MASM用指令方式调试汇编代码的方法。

目录
  • MASM调试汇编代码(命令行方式)
      • 总览
      • t指令
      • p指令
      • r指令
      • u指令
      • g指令
      • d指令

代码:

DATA    SEGMENT                           ;数据段
	HELLO DB 'Hello World!',0DH,0AH,'$'
DATA    ENDS

CODE    SEGMENT                           ;代码段
				ASSUME CS:CODE,DS:DATA            ;段寄存器分别与哪些段有关
START:  MOV   AX,DATA
				MOV   DS,AX                       ;设置数据段

				MOV   DX,OFFSET HELLO					  	;输出
				MOV   AH,09H
				INT   21H

				MOV  AX,4C00H
				INT  21H
CODE    ENDS                              ;代码段结束
				END START                         ;源代码结束
总览

常用命令 :t、r、d

  1. t:执行下一条语句。
  2. u:查看汇编代码。
  3. g:跳转到该内存所对应的语句
  4. r:查看寄存器的内容(后可直接接寄存器的名称,就只查看该寄存器的内容)。
  5. d:后接内存地址,查看该地址后面 8 * 16 个字节空间的地址(每行 16 个字节,共 8 行)后面是对应的字符‘.’表示没有该数字对应的字符。
  6. p:与T命令一样完成跟踪程序的运行, 但遇到子程序、中断程序、循环时并不跟踪下去, 而是把它们当作一条指令来执行。
t指令
  • T 【起始地址】【指令条数】
    • 逐条跟踪程序的运行, 同时显示出各寄存器的内容、状态标志和下一条要执行的指令
    • 当执行够指定的指令数后就暂停程序的运行。
    • 如果不指定起始地址, 则从CS:IP处开始执行。
    • 不指定指令条数, 则认为只执行一条指令。

p指令

格式:

  • p 【起始地址】【指令条数】
    • 与T命令一样完成跟踪程序的运行, 但遇到子程序、中断程序、循环时并不跟踪下去, 而是把它们当作一条指令来执行。
r指令

格式:

  • r
    • 显示当前所有寄存器内容, 状态标志及将要执行的下一条指令的地址、代码和汇编指令形式。
  • r 寄存器
    • 显示并修改指定寄存器的内容

u指令

格式

  • u 【地址】
  • u 【地址1】【地址2】

将指定地址范围内的机器代码翻译成汇编源程序指令显示出来, 并同时显示地址及代码。

反汇编时一定确认指令的起始地址, 否则得不到正确的结果。

g指令

运行程序命令

格式:

  • g 【起始地址】【断点地址】

从起始地址开始执行程序, 直到程序结束或遇到断点地址为止,如果不指定起始地址, 则从CS:IP处开始执行。

如果程序执行到结束,则显示"Program terminated normally"。如果遇到断点, 则程序停止执行, 并显示当时各寄存器的内容 和下一条要执行的指令。

d指令

格式:

  • d 【地址】
  • d 【地址1】 【地址2】

说明:D命令在屏幕上显示的内容分为三部分, 左边是每一行存储单元的起始地址, 中间是各字节单元的内容, 右边是各单元内容对应的ASCII码字符( 不可显示的字符用"."代替)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308352.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号