8086汇编指令编码和调试
2021/10/23 12:09:43
本文主要是介绍8086汇编指令编码和调试,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
实验结论:
实验任务2:
1.d命令查看生产日期
2.尝试修改内存单元
发现指令并没有起到作用,日期没有发生改变。因为ROM为只读存储器,只能读取内存数据,不能修改数据。
实验任务3:
1.使用e命令,向内存单元填写数据
2.使用f命令,向内存单元批量填写数据
实验任务4
1.填空
-a mov ax, 20 mov ds, ax mov ss, ax mov sp, 30 push [0] ; 执行后,寄存器(sp) = 002E push [2] ; 执行后,寄存器(sp) = 002C push [4] ; 执行后,寄存器(sp) = 002A push [6] ; 执行后,寄存器(sp) = 0028 pop [6] ; 执行后,寄存器(sp) = 002A pop [4] ; 执行后,寄存器(sp) = 002C pop [2] ; 执行后,寄存器(sp) = 002E pop [0] ; 执行后,寄存器(sp) = 0030
2.问题一
栈顶的为物理地址00230H,逻辑地址为0020H:0030H。
3.问题二
单步调试到汇编指令 push [6] 执行结束, pop [6] 执行之前,使用 d 20:20 2f 查看此 时栈空间数据
4.问题三
汇编指令 pop [0] 执行结束后, pop [0] 指令执行结束后,使用d命令 d 20:0 7 查看此 时数据空间内的数据是否有变化
发现数据空间内的数据没有变化
5.问题四
如果把最后四条指令改成截图中的顺序, pop [6] 指令执行结束后,使用d命令 d 20:0 7 查看此时数据空间内的数据是否有变化
如果改变最后四个指令的顺序,那么数据空间内的数据会发生变化。
实验任务5
1.问题一
使用t命令单步执行 mov ss, ax 时,是单步执行完这一条指令就暂停了吗?后面的指令 mov sp, 30 是什么时候执行的?
使用t命令单步执行mov ss,ax时,不是执行到这一条指令就暂停,mov sp,30紧跟着执行。因为cpu在执行过程中,不响应中断请求,所以不响应t命令中断。
2.问题二
根据汇编指令,前三条指令执行后,00220H ~ 0022fH被设置为栈空间。并且,初始时,已通 过f命令将初始栈空间全部填充为0。观察单步调试时,栈空间00220H ~ 0022fH内存单元值的变化,特 别是图示中黄色下划线表示出的数据值
在使用debug的t命令进行单步中断时,需要使用部分的栈空间暂存下一条命令的逻辑地址,在上图中,0801为ip偏移地址,3F07为段地址。
实验任务6
assume cs:code code segment start: mov cx, 10 mov dl, '0' s: mov ah, 2 int 21h add dl, 1 loop s mov ah, 4ch int 21h code ends end start
编译
连接
运行
在debug中查看task5.exe的程序段前缀PSP
程序段前缀为CD 20.
实验任务7
assume cs:code code segment mov ax, __cs___ mov ds, ax mov ax, 0020h mov es, ax mov bx, 0 mov cx, __17h___ s: mov al, [bx] mov es:[bx], al inc bx loop s mov ax, 4c00h int 21h code ends end
空1:代码实现自身复制,所以要将cs中存贮的代码开始的段地址通过寄存器ax赋值给ds
空2:寄存器cx控制的是s语句的循环次数,通过计算mov ax,4c00h之前的代码字节数,可以得出循环为17次。
确认是否复制
通过反汇编查看复制成功。
实验总结
1.栈的存储方式为先进先出,使用push命令时,首先减少sp的值然后将数据放入栈中,使用pop命令时,先取出数据,然后sp增加。
2.在debug调试中,发现程序中断时,cs:ip中存储的为下一条指令的段地址。
这篇关于8086汇编指令编码和调试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?