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


版权声明:本文为博主原创文章,未经博主允许不得转载。
我们在Windows中进入的Dos方式,实际上是虚拟8086模式的Dos,方法是:点击“开始”,“运行”,输入"command",点击“确定”, 可以看到弹出一个黑色的框框,然后,在黑色的框框中输入相关信息,如图所示(提前说一句,汇编语言对大小写不敏感,而C语言对大小写敏感):
下面来具体分析一下:
1. debug是一个调试工具(虽然可以在debug中写程序,但真正要写汇编程序,很少在debug中写)
2. r用于查询各寄存器的值
3. a用来输入汇编指令
4. t用来执行一条汇编指令
5. 还有其他命令,如d, e等等,此处不做介绍,用的时候,查一下就Ok
6.CPU执行的起点是CS:IP处
7.debug中写程序时,mov ax, 1 中的1表示0001h, 验证如下:
下面,我们再来看一个程序:
下面简要分析一下:
1. 栈为SS:SP, 即1000:0100
2. push表示入栈
3. pop表示出栈
4. 根据栈的性质可知:ax和bx的值交换了
还有一个问题需要解决:在上面的过程中,是用t命令来执行程序的,每次只能执行一条,那有没有什么命令可以将程序完全执行的呢?有!且看g命令的用法:
对一些人来说,看不到程序,看不到操作,就看不到想看到的东西,弄懂上面几个小程序,对汇编语言就有了一个初步的认识了,别一开始就搞无边无际的理论。
虽然基本操作和代码简单(容易被所谓的汇编语言大牛鄙视),但无疑,最简单的东西通常具有最大的单刀直入性。入门了,一切都不在话下。
汇编语言入门(在debug中编辑和调试程序)的更多相关文章
- 在Debug中使用断点调试程序
我最近在学习汇编的程序,所以很多都需要动手写点代码去测试,如果是测试三五行代码的还比较简单,可以在debug中直接按T进行单步调试,但是到后来调试的代码越来越复杂,越来越长,如果再使用单步调试不知道要 ...
- 《汇编语言(第三版)》pushf 和 popf 指令,以及标志寄存器在 Debug 中的表示
pushf 和 popf pushf 的功能是将标志寄存器的值压栈,而 popf 是从栈中弹出数据,输入标志寄存器. pushf 和 popf,为直接访问寄存器提供了方法. 格式 pushf popf ...
- 8086汇编语言入门-HelloWorld
附件下载: http://pan.baidu.com/s/1i5R9qO9 密码:rfgk 80x86微处理器汇编语言编程.学习任何编程语言都免不了要跨越HelloWorld这道坎,面向机器的 ...
- Jqgrid入门-使用模态对话框编辑表格数据(三)
Jqgrid是一个强大的表格插件,它提供了多种方式来编辑数据.这三种方式分别是: Cell Editing——只允许修改某一个单元格内容 Inline Editing——允许在jqGr ...
- 使用BabeLua在cocos2d-x中编辑和调试Lua
使用BabeLua在cocos2d-x中编辑和调试Lua BabeLua是一款基于VS2012/2013的Lua集成开发环境,具有Lua语法高亮,语法检查.自己主动补全.高速搜索,注入宿主程序内对Lu ...
- 获取项目中文件,存放到Debug中。
说起这个,还真是费了一般功夫. 说个最简单的方法: 第一步:把需要生成到Debug中的文件放到项目中(注意:当前文件夹目录是什么样的,存放到Debug中也是什么样) 第二部:设置文件属性中 复制到输出 ...
- alv中编辑的时候quan字段小数位数被截取掉
alv中编辑的时候quan字段小数位数被截取掉:位数太多(最大只能为 0) 解决方法: ls_fcat-fieldname = 'ZKBSL'. ls_fcat-coltext = '卡板数 ...
- 汇编语言指令与debug命令符
•MOV与ADD指令 汇编指令 控制CPU完成的操作 形式化语法描述 mov ax, 18 将18送入AX (AX)=18 mov ah, 78 将78送入AH (AH)=78 add ax, 8 ...
- 在网页中编辑报表的报表设计器Stimulsoft Reports Designer.Web报表控件
Stimulsoft Reports Designer.Web报表控件是一款网页报表设计器.您想在网页中编辑您的报表吗?现在是可能的! Stimulsoft Reports Designer.Web ...
随机推荐
- ssh隧道远程连接mysql
有时候比如一些云主机,没有开放3306端口,这里可以用ssh隧道来连接数据库,更加安全 注意点: 1.本地ssh可以登录远程服务器,(密码或者秘钥) 2.远程数据库需要赋权限给隧道端的ip 命令: s ...
- OpenCV 3.1
http://www.tuicool.com/articles/FRfMni2 http://docs.opencv.org/3.1.0/d7/d9f/tutorial_linux_install.h ...
- .Vue 文件 ES6 语法 webstorm 中的一个识别Bug
webstorm 2017 版本中即使安装了vue template file 设置了 js 语言为 es6 语法仍旧会出现识别不了划线的情况,苦寻很久,最后解决方式如下 <script typ ...
- PriorityBlockingQueue优先队列的二叉堆实现
转载请注明原创地址http://www.cnblogs.com/dongxiao-yang/p/6293807.html java.util.concurrent.PriorityBlockingQu ...
- udp广播和多播
使用UDP协议进行信息的传输之前不需要建立链接, 客户端向服务器发送信息时,客户端只需要给出服务器的ip地址和端口号,可以发送信息.至于服务器端是否存在,是否能够收到该报文,客户端根本不用管. 广播( ...
- ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs
ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs 第一部分:使用ssh key 实现服务器间的免密码交互登陆 步骤1: 安装openssh-clients [root@001 ...
- 02 Memcache add详细介绍
一:Memcached add 命令参数 ()add key flag expire length [增] key: 键名(起一个独立的名字) flag 标志,要求为一个正整数 备注:()当Memca ...
- Keil 中 Program Size: Code RO-data RW-data ZI-data 所代表的意思
在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息: Program Size: Code=6320 RO-data=4864 RW-data=44 ZI-data ...
- web安全之SQL注入---第三章 如何寻找sql注入?
借助逻辑推理1.识别web应用中所有输入点2.了解哪些类型的请求会触发异常3.检测服务器响应中的异常 总结: 输入点无非就是:地址栏.和输入框 输入康输入一些非法字符,导致后台的sql语句错误,
- EasyNVR流媒体直播之:零基础实现摄像头的全平台直播 (二)公网直播的实现
接上回(https://blog.csdn.net/xiejiashu/article/details/81276870),我们实现内网直播,可以实现直播的web观看,该篇博文我们将实现公网的直播. ...