汇编:Debug的常用命令_汇编debug命令-程序员宅基地

技术标签: 汇编  汇编语言  debug常用命令  

Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可
以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。
请添加图片描述

1、Debug的常用功能

R命令:查看、改变CPU寄存器的内容;
D命令:查看内存中的内容;
E命令:改写内存中的内容:
U命令:将内存中的机器指令翻译成汇编指令:
T命令:执行一条机器指令;
A命令:以汇编指令的格式在内存中写入一条机器指令。
Q命令:退出debug
P命令:类似于step over(“t”命令类似于step into),可用于跳过loop循环
G命令:跳过前面的代码,停留到指定的代码位置

2、R命令

输入r:查看所有寄存器的值
输入r 寄存器名称:修改寄存器的值
输入r ax:将ax寄存器的值改为0100H
在这里插入图片描述

3、D命令

输入d:可以查看内存中的内容
输入d 段地址:偏移地址:查看特定位置的内存数据
输入d 段地址:起始偏移地址 结尾偏移地址:查看特定位置和特定范围的内存数据
输入d 偏移地址d 起始偏移地址 结尾偏移地址:会将DS的内容作为段地址
在这里插入图片描述右边是每个内存单元中的数据对应的可显示的ASCII码字符,如果没有对应的ASCII字符,就显示“.”。

4、E命令

1、输入e 段地址:偏移地址 数据串修改特定位置的内存数据:
在这里插入图片描述
2、输入e 段地址:偏移地址后按Enter也可以修改特定位置的内存数据,数据之间用空格隔开:
在这里插入图片描述

5、U命令

输入uu 段地址:偏移地址可以将内存中的内容翻译为对应的汇编指令:
在这里插入图片描述由3部分组成

1、最左边一列:是指令的地址段地址:偏移地址
2、中间那一列:是指令对应的机器指令
3、最右边一列:是汇编指令

6、A命令

输入a、a 段地址:偏移地址在这里插入代码片可以从某位置开始写入汇编指令:
在这里插入图片描述

应用拓展:
在这里插入图片描述

(2)用目前所学过的汇编指令,计算2的4次方(最多使用4条指令)
在这里插入图片描述

(3)查看内存中的内容。
PC机主板上的ROM中写有一个生产日期,在内存FFFOOH~FFFFFH的某几个单元中,请找到这个生产日期并试图改变它。
在这里插入图片描述
(4)向内存从 B8100H 开始的单元中填写数据,如:

-e B810:0000 01 01 02 02 03 03 04 04

请读者先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。
在这里插入图片描述8086 的显存地址空间是 A0000H~BFFFFH,其中 B8000H~BFFFFH 为 80*25 彩色字符模式显示缓冲区,当向这个地址空间写入数据时,这些数据会立即出现在显示器上

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_38633659/article/details/125166093

智能推荐

智能制造控制中的AI研究进展-程序员宅基地

文章浏览阅读446次,点赞14次,收藏14次。1.背景介绍智能制造控制是现代制造业中的一个重要领域,它涉及到制造过程中的自动化、智能化和优化。随着计算能力的提高和数据技术的发展,人工智能(AI)技术在智能制造控制中的应用也逐渐成为主流。本文将从背景、核心概念、算法原理、代码实例、未来趋势等多个方面进行深入探讨,以帮助读者更好地理解AI在智能制造控制中的应用和研究进展。1.1 背景介绍智能制造控制是制造业中的一个重要领域,涉及到制造...

2018美亚杯个人赛刷题-程序员宅基地

文章浏览阅读5.4k次,点赞6次,收藏27次。文章目录写在前面题目1.E2.C3.B -D-4.C -E-5.C6. D7.D8. A9.A10.C11.E12.D13.D14.A15.D16.E17.D18.A19. B20.C21.E22.D23.A24.C25.C26.D27.D28.C29.D30.D31.C32.E33.D34.B -C-35. -E-36.A37.A38.D39.D -C-40.B41.C42.E -D-43.C44.B45.A46.C47.E48.B49.D50.CPS写在前面这是美亚杯2018个人赛的个人_2018美亚杯个人赛

ECS框架学习(Entitas)入门_ecs框架 entitas-程序员宅基地

文章浏览阅读6.2k次。公司要求使用ECS框架经行开发,没办法只能自己学习了。记录一下学习过程。框架的含义可以去其他地方查看,我这里写一点我的理解(新人,不对请谅解)。ECS即Entity-Component-System(实体-组件-系统) 的缩写。它做到了行为、数据分开,Component存数据。Entity用来就是由各个Component组成。System用来经行他们中间的通信。对于网上或者官方说速度更快、更容..._ecs框架 entitas

vars()函数用法-程序员宅基地

文章浏览阅读1.5w次,点赞10次,收藏35次。python内置函数。vars() 函数返回对象object的属性和属性值的字典对象。vars([对象])当函数不接收参数时,其功能和locals函数一样,返回当前作用域内的局部变量。当函数接收一个参数时,参数可以是模块、类、类实例,或者定义了__dict__属性的对象。#作用于模块>>> import time>&a_vars()

vue中实现文字超出横向滚动_el-pagination超出屏幕-程序员宅基地

文章浏览阅读4.3k次,点赞3次,收藏14次。vue中实现文字超出横向滚动marquee组件<template> <div class="marquee-wrap" ref="marquee-wrap"> <div class="scroll" ref="scroll"> <p class="marquee">{{text}}</p> <p class="copy" ref="copy"></p> </div>_el-pagination超出屏幕

web.config/app.config敏感数据加/解密的二种方法-程序员宅基地

文章浏览阅读59次。一.利用代码加解密usingSystem.Web.Configuration;//加密web.Config中的指定节privatevoidProtectSection(stringsectionName){Configurationconfig=WebConfigurationManager.OpenWebConfigurat..._app.config代码加解密

随便推点

Qt笔记_正则表达式(regular expression)_qt regex-程序员宅基地

文章浏览阅读9.2k次,点赞4次,收藏28次。手册里使用的词汇是 regexp 优点: 方便地完成字符串的一些处理操作,例如验证、查找、替换和分割等。类名称为QRegExp类,是基于Perl的正则表达式语言,支持Unicode。头文件:#include < QRegExp >//(尖括号中的空格是为了适应markdown而添加的,编程时不使用多余的空格)qmake:QT += core帮助文档中指出:All functions in_qt regex

系统设计与分析homework5_sdlc的第一阶段是分析。写一个简单的报告,包括: 分析新系统需要解决的问题 l可行-程序员宅基地

文章浏览阅读151次。一、根据订旅馆建模文档,Asg-RH.pdf:1. 绘制用例图模型(到子用例)给出 make reservation 用例的活动图2、根据课程练习“投递员使用投递箱给收件人快递包裹”的业务场景分别用多泳道图建模三个场景的业务过程场景一x科技公司发明了投递柜,它们自建了投递柜以及远程控制系统。注册的投递员在推广期免费使用投递柜。由于缺乏资源,仅能使用y移动平台向客户发送短信通知。..._sdlc的第一阶段是分析。写一个简单的报告,包括: 分析新系统需要解决的问题 l可行

LayUI的后台管理模板_layui后端模板-程序员宅基地

文章浏览阅读8k次,点赞2次,收藏18次。  以前没有做网页开发不知道的内容太多了,现在开始做了这一块,发现内容真多。  星期五接到一个资产核查的任务,时间紧,我对网页这一块的内容还不是很熟练,有些着急,在网上一搜,LayUI的模板,有很多好评和讲解,拿来一用,感觉很不错。  这个后台系统可以很快上手,界面部分不用操心太多,很多页面有实例,略微改动就可以直接使用。  写程序界面是个大问题,这下省事多了,虽然后期项目使用LayUI比较少,但做一些中小型的项目真的是很好的选择,最主要的就是快。..._layui后端模板

常见的数组概念-程序员宅基地

文章浏览阅读90次。常见数组_常见的数组

如何从零开始实现TDOA技术的 UWB 精确定位系统(1)_uwb_tdoa-程序员宅基地

文章浏览阅读1.1k次,点赞28次,收藏24次。这是一个系列文章,将向你介绍如何从零开始实现一个使用TDOA技术的 UWB 精确定位系统。重要提示劝退说明Q:做这个定位系统需要基础么?A:文章不是写给小白看的,需要有电子技术和软件编程的基础Q:你的这些硬件/软件是开源的吗?A:不是开源的。这一系列文章是授人以“渔”,而不是授人以“鱼”。文章中我会介绍怎么实现UWB定位系统,告诉你如何克服难点,但不会直接把PCB的Gerber文件给你去做板子,不会把软件的源代码给你,不会把编译好的固件给你。我不会给你任何直接的结果,我只是告诉你方法。_uwb_tdoa

各种常见报错汇总_vs未经处理的异常怎么处理-程序员宅基地

文章浏览阅读10w+次,点赞2次,收藏13次。Visual Studio解决办法:报错原因:堆栈溢出,可能是定义的某个变量太大而没有修改栈保留大小所至。本人的问题是用ege画图的时候定义的地图面积太大导致。解决方法:项目→属性→链接器→系统→堆栈保留大小→设置成一个比较大的数并应用。即可完美解决,如果还没解决可能是设置的不够大。其实真正应该修改的是你的代码,问题就出现在为什么会有栈溢出问题,很简单,显然是数组或者开辟的指针空间太大!所以,解决办法就是将大数组定义在main()外部当作全局变量,全局变量放在数据区,空间足够使用。或者写在mai_vs未经处理的异常怎么处理