汇编语言入门:debug调试工具

对于大学生来说,基本都需要学习高级编程语言,相信大多数理工类大学生都知道c++、c语言、Java语言等高级语言,也知道机器语言这个最低级的语言,但是却有很多都不知道汇编语言,或许听过这个名字,却不知道用途等。现在我就来给大家讲解一下汇编语言以及入门。我也是刚学习汇编语言,大家可以跟着我一起学习。汇编语言与高级语言不同,它是面向机器的语言,最接近于机器语言。学习汇编语言,必须要了解计算机中机器指令、数据、符合的表示形式和存储格式以及机器指令程序的运行方式等。汇编语言的实践性很强,必须要边学习边动手才可能掌握,需要耐心和细心。初学者一般需要用到debug小工具进行程序调试,现在我就来给大家演示一下debug调试工具的使用以及debug命令符。

工具/原料

  • 电脑
  • 安装有debug小工具的系统(一般32位的windows系统自带有,64位的需要自己安装)

方法/步骤

  1. debug调试程序是以DOS外部命令程序形式提供的,它的文件名为Debug.com 。如果你使用的是windows系统,那么如果是32位的电脑,一般都自带有debug调试工具,而64位的一般没有自带这个工具,需要自己进行安装。XP系统暂时不作介绍,读者可以参照我介绍的方法进行尝试。首先,点开windows开始图标。在收索框里输入cmd,注意是cmd,不是debug,虽然输入debug也可以,但是在后续的程序调试中会出现一些问题。输入cmd并按回车后即可打开调试工具了。

  2. 若直接输入debug打开,工作界面与输入cmd打开有所不同,建议还是通过cmd打开debug。

  3. 打开cmd程序后,输入debug,大小写均一样,习惯用大写,为方便操作,后续的操作我一律使用小写。输入之后按回车,会出现下图所示的工作框。

  4. 在debug窗口就可以进行汇编语句的编写和调试了。先在窗口输入A,然后回车,系统自动分配到内存,如本图所示,其中13F1是寄存器的段基址,冒号后面的0100是偏移地址,对应的物理地址是13F1100,即程序在此地址下开始存储。然后输入汇编语句,举一个简单的例子,将数据2341H送入寄存器ax和cx中。记住输入的数据在汇编是已经默认是十六进制,不需要在加h,否则会显示错误。

  5. 再举另一个例子,将21h和23h两个数相加,结果存放到al中。并通过命令符t一步一步执行,看结果。每输入一个t,按回车后即完成一条指令,第一条指令是将21h送入到ax寄存器的低位al中,看到ax的值变成了0021;第二步执行的是将21h与23h相加,并将结果存放到al中,所执行之后看到ax的值由0021变成了0044 。注意到两条指令执行后,IP的值发生了改变,即地址指针发生了改变。NV、UP、EI、PL、NZ、NA、PO、NC代表的是标志寄存器的状态位,在此不做进一步介绍,查阅相关书籍都会有详细的介绍。

  6. 现在来给大家介绍一下常用的几个命令符。a:逐行汇编;u:反汇编;t:逐行执行命令;d:显示一定内存单元内容,再次输入将在原显示内容上继续显示下面内存的内容;q:退出debug回到dos状态;r:改变或显示一个或多个寄存器的内容;n:命名文件;w:将已命名文件写入磁盘;l:将程序装载进内存。

    暂时介绍这些常用的几个。有需要的读者可以去网上收索更详细的命令符。

    下面给大家演示一个简单的例子,并使用这些命令符。

    存盘后要想查看已存内容,可以先用q退出,然后输入dir回车,即可看到文件下的所以目录。可以看到自己命名的文件

时间: 2024-08-29 20:16:14

汇编语言入门:debug调试工具的相关文章

汇编语言入门———逻辑三大总线及工作原理

指令和数据: 在内存或者磁盘上,指令和数据是没有任何区别的,都是二进制信息. 那怎么区分二进制信息到底是数据还是程序呢? 下面会有解释. cpu要想进行数据的读写,必须和外部器件进行三类信息交互: 1.存储单元的地址(地址信息) 2器件的选择,读还是写(控制信息) 3 操作的数据(数据信息) 计算机中专门链接cpu和其他芯片的导线,通常称为总线(bus) 物理上:一根根导线的集合 逻辑上划分为: 地址总线 数据总线(从这条总线到cpu的二进制信息 就算做数据) 控制总线(从这条总线到cpu的二进

汇编语言入门———cpu的工作原理(寄存器)

CPU构成 典型的cpu有 运算器,控制器,寄存器 等器件组成.这些器件靠内部总线相连 寄存器 寄存器是cpu内的组成部分.寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令.数据和地址 8086CPU有14 个寄存器  AX , BX, CX, DX, SI, DI, SP, BP, IP, CS , SS, DS, ES , PSW 通用寄存器(8个 一般不变) 8086CPU所有的寄存器都是16位的,可以存放两个字节(1个字) AX BX CX DX 是通用寄存器,通常用来放一般性数据

汇编语言入门———cpu与存储器的配合(外部通讯)

存储器: 随机存储器(RAM) :断电以后就会丢失: 只读存储器(ROM): 公共能和链接上分为 随机存储器RAM 装有BIOS的ROM bios(基本输入输出系统),是由主板和各类接口卡(显卡 网卡)厂商提供的软件系统. 接口卡上的RAM (显存) 各类存储器的逻辑链接 内存地址空间: 一个cpu的地址线宽度是10,那么可以寻址1024个内存单元(2的10次方),这1024个可寻到的内存单元就构成了 这个cpu的内存地址空间. 在cpu看来,各类存储器是一个逻辑存储器,如下图所示 Intel

8086汇编语言入门-HelloWorld

附件下载:  http://pan.baidu.com/s/1i5R9qO9    密码:rfgk 80x86微处理器汇编语言编程.学习任何编程语言都免不了要跨越HelloWorld这道坎,面向机器的汇编语言与面向过程/对象的高级语言不同,编码过程中对寄存器.内存的分配等细节都需要编程人员去关心:而高级语言程序如C语言.C++,即使你不知道printf具体是怎么实现的,只要掌握使用方法即可(封装成模块).C语言的helloworld程序简单到只有一行执行语句:   printf("Hello,W

汇编语言入门(在debug中编辑和调试程序)

2013-06-02 17:09 4252人阅读 评论(2) 收藏 举报  分类: 汇编语言(1)  版权声明:本文为博主原创文章,未经博主允许不得转载. 我们在Windows中进入的Dos方式,实际上是虚拟8086模式的Dos,方法是:点击“开始”,“运行”,输入"command",点击“确定”, 可以看到弹出一个黑色的框框,然后,在黑色的框框中输入相关信息,如图所示(提前说一句,汇编语言对大小写不敏感,而C语言对大小写敏感): 下面来具体分析一下: 1. debug是一个调试工具(

汇编语言入门

工欲善其事, 必先利其器.汇编语言是我们学习, 接口原理, 微机组成原理等多门有趣课程的基础. 然而不幸得是刚接触汇编的人老是感觉, 好难, 好麻烦, 好多, 好虐心, 好虐脑.于是, 行百里者半九十!!!. 其实汇编没有想象的那么的难, 并且很有趣. 当然, 也没有想象的那么简单. 先推荐课本吧! 王爽的<汇编语言>. 这本书比较适合入门, 因为书中尽量的屏蔽了好多的深奥内容. (即使是这样, 也还是不简单!).然后是我们老师给我们推荐的书 :<80x86汇编语言程序设计教程>(

汇编语言入门:流程控制

流程控制:顺序,分支,循环 程序计数器PC中存储当前执行的程序在EM中的位置 汇编里面,用比较.跳转实现流程控制. 1.顺序:PC+1(不一定加一,看指令长度) 2.分支循环,直接赋给PC值,执行指定地址的程序 有时候需要程序有一定的流程控制能力,它不是老老实实按照顺序来执行的,中间可能会跳过一些代码 修改PC值,不可用MOV指令,PC是特殊的寄存器,特殊对待,跳转指令修改其值. 跳转指令: 1 ja 大于时跳转 2 jae 大于等于 3 jb 小于 4 jbe 小于等于 5 je 相等 6 j

OS/390汇编语言入门

第四单元,程序开发过程,描述了汇编语言语法及汇编语言在汇编语言程序中如何转换为...系统宏指令中就大量地使用了通用寄存器.宏指令是由操作系统提供给汇编语言程序员 http://www.zhihu.com/people/ojmgibsuhhttp://www.zhihu.com/people/cnuekeahwhttp://www.zhihu.com/people/wuzrdcacqhttp://www.zhihu.com/people/cymdxgxhttp://www.zhihu.com/pe

汇编语言入门教程

2018-02-10 阮一峰 21CTO 学习编程其实就是学高级语言,即那些为人类设计的计算机语言. 但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行.学会高级语言,并不等于理解计算机实际的运行步骤. 计算机真正能够理解的是低级语言,它专门用来控制硬件.汇编语言就是低级语言,直接描述/控制 CPU 的运行.如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言. 汇编语言不容易学习,就连简明扼要的介绍都很难找到.下面我尝试写一篇最好懂的汇编语言教程,解释