【汇编语言】——用机器指令和汇编指令编程
2021-05-17 00:30
标签:分享 反汇编 程序 alt 系统 感悟 windows 实模式 主板 初入大二,刚刚接触和学习汇编语言这门课程,肯定有很多的不足和漏洞;本篇文章是关于王爽编著的《汇编语言》(第三版)第二章的章后实验的实验报告和总结。 一 实验环境的配置和测试 Debug是DOS,Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容,内存的情况和在机器码级跟踪程序的运行。64位win10系统下,可以通过安装DOSBox软件来配置一个虚拟的工作环境。 相关的软件放在我的百度云盘,还没有安装的可以通过以下链接下载。 链接: https://pan.baidu.com/s/1ue_s7JaGKTjj6RLKui_9bg 提取码: 15qs 解压之后将masm.7z文件解压放入D盘(因人而异),然后点击安装即可。 (1)设包含dos工具(edit.com, masm.exe, link.exe, debug.exe)的文件夹masm在windows系统的存放路径为:d:\masm TIPS:在帮我室友配置环境的时候发现有的电脑找不到AppData这个文件夹,没有的可能是隐藏了,打开我的电脑——查看——隐藏文件,勾选上就可以了。 一切都准备好以后点开软件,输入debug,出现以下画面,就是配置完毕了。 此时在- 后面输入R命令可以查看,改变CPU寄存器的内容 在-D命令查看内存中的内容balabala,有很多指令就不一一阐述了,书上以及网上都有很多,想要进一步学习的可以自行度娘。 二 实验任务及报告 下面就是完成章后实验的实验过程和结果 实验任务(1)-1用E命令输入机器码 首先我们通过R指令查看寄存器的状态,可以看到CS:IP指向的是073F:0100。 接着我们使用R命令修改CS,IP中的内容,使CS:IP指向1000:0。 使用E命令输入 -e 1000:0 b8 20 4e 用U命令查看对应的汇编指令,使用T命令执行。 执行T命令后,1000:0处的指令b8 20 4e(mov ax,4E20H)得到执行。指令执行后,AX中的内容被改写为4E20H,IP改变为IP+3(因为mov ax,4E20H的指令长度为3个字节),CS:IP指向下一条指令。 重复以上操作,将任务要求的全部指令输入完毕后得到如下图结果: 最后CS:IP指向1000:0021,说明指令总长度为21个字节。 实验任务(1)-2用A命令输入汇编指令 同E命令类似,用A命令向从1000:0开始的内存单元中写入了任务要求的汇编指令。 实验任务(2) 首先用A命令写入汇编指令: 然后用T指令计算2的8次方: 最后AX的结果为0010H。 实验(3) 在DEBUG中输入: 可以看到 01/01/92,地址是FFFF:0005~FFFF:000C。 另一个室友的笔记本显示的结果也是这个,所以初步猜测可能笔记本都是这个吧……但是后来去百度一下,DOSBox是一个虚拟的工作环境,所以查看到的也是一个虚拟主板…… 尝试修改一下吧,-e FFFF:5 就像上面说的,DOSBox环境下虚拟主板应该是预设的,所以应该是改不了的。 实验(4) 用E命令写入数据,再用D命令读取数据: 再输入-e B810:0000 05 05 06 06 07 07 08 08,进行数据修改,用D命令查看: 再输入e 2000:0000 01 01 02 02 03 03 04 04: 三 实验总结及学习感悟: 本次章后实验难度比较低,但是能够帮我们理解课本前两章所学习到的内容。同时熟练的掌握Debug工具的使用对日后汇编语言的学习是有很大帮助的。 学习感悟吗emmm没太多吧,虽然是一门选修课,但是内容还蛮有意思的,至于更高阶的反汇编,安全攻防什么的哈哈哈目前我一个菜鸟还没办法理解吧,希望能够在这门课上学到些知识而且能够学有所用。 【汇编语言】——用机器指令和汇编指令编程 标签:分享 反汇编 程序 alt 系统 感悟 windows 实模式 主板 原文地址:https://www.cnblogs.com/hongyezhu/p/9747357.html
(2)安装DOSBox完成后,启动DOSBox,出现虚拟盘符z:\,输入如下命令:
mount d: d:\masm
表示:创建虚拟盘符d:,并将你的硬盘d:\masm文件夹的内容虚拟到虚拟 dos平台的d:\下。
(3)输入d:进入虚拟盘符d:\,即可使用dos版的汇编工具。
(4)使用时输入debug 或 debug32即可调试。
(具体使用哪一个需要依赖你的电脑是否支持)
*注:如果不想每次启动dosbox都重复上述步骤中的(2)和(3),可以把(2)和(3)的内容写进 dosbox的配置文件,以后每次就可以自动执行这两步。具
体操作如下:
查找到配置文件dosbox-0.74.conf,通常目录是C:\Users\×××\AppData\Local\DOSBox\dosbox-0.74.conf,找到后,在文件最后加上两行:
第 4 页/共 5 页
mount d: d:\masm
d:
这样每次启动dosbox时,系统会自动执行上述两条命令。
-d FFFF:0 F
这句代码的作用是读FFFF:0中的内存数据:
FFFF:0005 30. 33.35 2F.
FFFF:0008 33.32 30.33 2F. 30. 36.38
输入完想修改的日期后查看内存。
-d FFFF:0 F,显示的还是一样的:
上一篇:【python】从web抓取信息
下一篇:java多线程知识总结(三)