16位汇编的调试及常用命令
2015-11-06 22:54
302 查看
一、个人吐槽:
最近,学习16位汇编,头痛的是我竟然在vs2013(32位)上配置汇编(32位)环境,现在把它卸载,所以先记录下来。这里顺便延伸一下16汇编。我找了一大堆资料,后来发现一位网友说得很对,16汇编是最基础的,我们应该使用debug来进行调试以便更了解pc机的基层语言。话不多说,开讲。
二、16位汇编环境搭配及使用
1、首先,我来汇总一下,若你的系统是32位且win7以下,直接进行第三步,否则从第二步开始
2、如果你的电脑是32位机且是win7以下的,可以直接打开系统的命令提示符进行debug,否则需要软件辅助才能进行debug。我向大家推荐一个软件dosbox。
地址:http://pan.baidu.com/s/1bnjuLeJ
安装及使用教程参考:http://jingyan.baidu.com/article/ceb9fb10dc75c38cad2ba098.html
(1)这个教程是别人做的,但我有一点小技巧。打开安装路径->DOSbox-0.74->DOSBox 0.74 Options.bat,在倒数第三行【autoexec】加入mount C G:\masm,注意:G:\masm这个是我放masm软件的路径,masm软件在3中放出,你可以将masm放在其他路径,G:masm改为你的路径,最好不要中文路径。然后换行,再加入C:即可。作用:不用每次打开都要输入这两行。这个软件的作用是将这个将这个目录挂载到c盘上。
3、当然,有了这个软件,我的程序应该怎么调试呢?就像上文我说的G:\masm路径一样。这里我向大家推荐一个软件masm,作用:将.asm->.obj->.exe
地址:http://pan.baidu.com/s/1dDmE7FN
4、[环境配置好了],masm软件有了。我在这总结一下以下几点,
(1)用记事本编写汇编(当然,你也可以用其他任何可编辑文本的软件),保存为.asm文件,并放到masm目录下(重点,不然无法debug)。然后进入命令提示符(win7 32位以下)或dosbox(不能再命令提示符使用debug的),
(2)输入masm xx.asm(xx代表你的文件名),你会看到有三个文件(.obj .list ..crf)让你选择生成,若你一直按回车,只生成.obj文件。
(3)输入masm xx.asm(xx代表你的文件名),你会看到有三个文件(.exe .map .lib)让你选择生成,若你一直按回车,只生成.exe文件。
5、好了,我现在提供一个程序给大家调试,看附件
三、调试
1、新建记事本,将附件内容复制粘贴,保存在masm目录下(不要放错啊),后缀名为.asm(记得改啊)
2、汇编(编译)--------- >目标文件 .OBJ(AAA是你的文件名)
D:\MASM>MASM AAA
3、
•链接 --------- > 可执行文件 .EXE
D:\MASM>LINK AAA
4、执行--------- >最终可执行文件名 或双击文件名
D:\MASM>AAA
5、调试--------- > 最终可执行文件名
D:\MASM>DEBUG AAA.EXE
四、汇编常用命令
1、DOS 命令简单介绍
改变盘符: C:\>D: (变成D:\>)
建立子目录: D:\>MD MASM (在D:盘的根目录下建立了MASM子目录)
改变子目录: D:\>CD MASM (转到MASM子目录)
回到上一级目录: D:\ MASM\>CD \
查看目录内文件:D:\MASM>DIR
2、debug常用命令
D显示内存D[<地址>]或D[<范围>]
u反汇编u[地址范围]
r显示寄存器r[寄存器名]或rf
G执行G[=<起始地址>][<断点地址>]
H十六进制计算H
数值1 数值2
五、附件(输出how do you do)
六、程序结果
最近,学习16位汇编,头痛的是我竟然在vs2013(32位)上配置汇编(32位)环境,现在把它卸载,所以先记录下来。这里顺便延伸一下16汇编。我找了一大堆资料,后来发现一位网友说得很对,16汇编是最基础的,我们应该使用debug来进行调试以便更了解pc机的基层语言。话不多说,开讲。
二、16位汇编环境搭配及使用
1、首先,我来汇总一下,若你的系统是32位且win7以下,直接进行第三步,否则从第二步开始
2、如果你的电脑是32位机且是win7以下的,可以直接打开系统的命令提示符进行debug,否则需要软件辅助才能进行debug。我向大家推荐一个软件dosbox。
地址:http://pan.baidu.com/s/1bnjuLeJ
安装及使用教程参考:http://jingyan.baidu.com/article/ceb9fb10dc75c38cad2ba098.html
(1)这个教程是别人做的,但我有一点小技巧。打开安装路径->DOSbox-0.74->DOSBox 0.74 Options.bat,在倒数第三行【autoexec】加入mount C G:\masm,注意:G:\masm这个是我放masm软件的路径,masm软件在3中放出,你可以将masm放在其他路径,G:masm改为你的路径,最好不要中文路径。然后换行,再加入C:即可。作用:不用每次打开都要输入这两行。这个软件的作用是将这个将这个目录挂载到c盘上。
3、当然,有了这个软件,我的程序应该怎么调试呢?就像上文我说的G:\masm路径一样。这里我向大家推荐一个软件masm,作用:将.asm->.obj->.exe
地址:http://pan.baidu.com/s/1dDmE7FN
4、[环境配置好了],masm软件有了。我在这总结一下以下几点,
(1)用记事本编写汇编(当然,你也可以用其他任何可编辑文本的软件),保存为.asm文件,并放到masm目录下(重点,不然无法debug)。然后进入命令提示符(win7 32位以下)或dosbox(不能再命令提示符使用debug的),
(2)输入masm xx.asm(xx代表你的文件名),你会看到有三个文件(.obj .list ..crf)让你选择生成,若你一直按回车,只生成.obj文件。
(3)输入masm xx.asm(xx代表你的文件名),你会看到有三个文件(.exe .map .lib)让你选择生成,若你一直按回车,只生成.exe文件。
5、好了,我现在提供一个程序给大家调试,看附件
三、调试
1、新建记事本,将附件内容复制粘贴,保存在masm目录下(不要放错啊),后缀名为.asm(记得改啊)
2、汇编(编译)--------- >目标文件 .OBJ(AAA是你的文件名)
D:\MASM>MASM AAA
3、
•链接 --------- > 可执行文件 .EXE
D:\MASM>LINK AAA
4、执行--------- >最终可执行文件名 或双击文件名
D:\MASM>AAA
5、调试--------- > 最终可执行文件名
D:\MASM>DEBUG AAA.EXE
四、汇编常用命令
1、DOS 命令简单介绍
改变盘符: C:\>D: (变成D:\>)
建立子目录: D:\>MD MASM (在D:盘的根目录下建立了MASM子目录)
改变子目录: D:\>CD MASM (转到MASM子目录)
回到上一级目录: D:\ MASM\>CD \
查看目录内文件:D:\MASM>DIR
2、debug常用命令
命令 | 名称 | 命令格式 |
A | 汇编 | A[<地址>] |
G | 执行 | g=[起始地址] [断点地址] |
u反汇编u[地址范围]
r显示寄存器r[寄存器名]或rf
G执行G[=<起始地址>][<断点地址>]
H十六进制计算H
数值1 数值2
五、附件(输出how do you do)
<span style="font-family:SimSun;font-size:18px;">DATA SEGMENT ;数据段开始 STR DB "How do you do?$" DATA ENDS ;数据段结束 STACK SEGMENT STACK ;堆栈段开始 DB 200 DUP(?) STACK ENDS ;堆栈段结束 CODE SEGMENT ;代码段开始 ASSUME DS:DATA,SS:STACK,CS:CODE ;段分配,声明段 START: MOV AX,DATA ;给DS赋初值 MOV DS,AX LEA DX,STR ;显示缓冲区首址赋DX MOV AH,9 ;设置9号调用 INT 21H ;9号调用输出How do you do? MOV AH,4CH ;设置4CH号调用 INT 21H ;结束程序运行,返回DOS CODE ENDS ;代码段结束 END START ;程序结束 </span>
六、程序结果
相关文章推荐
- 国内NLP的那些人那些会
- spring mvc生成注册验证码
- 描述性编程简单运用
- Objective-C 语法学习笔记1
- Java工程师三大框架面试题汇总
- MVC学习手册之数据注解与验证
- 全面解析Linux 内核 3.10.x - 如何开始
- phonegap2.9.0 创建工程
- java实现数据库导出ECXL表格
- swift学习Day04
- 在Ubuntu上安装Mysql并远程连接
- iOS开发:UIImage赋颜色-----给image赋16进制颜色值
- 胃炎
- 整体倾斜度调整
- 数论之欧拉函数
- 深入浅出Java三大框架SSH与MVC的设计模式
- LeetCode OJ:Longest Substring Without Repeating Characters(最长无重复字符子串)
- C++常见类型所占字节大小
- haproxy
- 我第二次用SecureCRT时的糗事