ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

实验1 用汇编指令编码和调试

2021-10-26 09:34:50  阅读:137  来源: 互联网

标签:__ 编码 汇编 sp mov 寄存器 ax 执行 调试


实验任务2

1)给出使用d命令查看生产时期的截图

 

 2)给出使用e命令修改生产日期所在内存单元截图,以及,修改后,再次使用d命令查看的截图

 

 

 3)结论:能否修改,以及分析原因

 结论:通过e命令修改无效。因为这里属于ROM部分,只读区域,写入是无效的。

 

实验任务3

 1)给出在debug中使用e命令修改内存单元的命令,以及效果截图

 

 2)在debug中使用f命令批量充填内存单元的命令以及截图

 

 3)尝试修改内存单元

 

 

实验任务4

 填空

 1 -a
 2 mov ax, 20
 3 mov ds, ax
 4 mov ss, ax
 5 mov sp, 30
 6 push [0] ; 执行后,寄存器(sp) = __002E__
 7 push [2] ; 执行后,寄存器(sp) = __002C__
 8 push [4] ; 执行后,寄存器(sp) = __002A__
 9 push [6] ; 执行后,寄存器(sp) = __0028__
10 pop [6] ; 执行后,寄存器(sp) = __002A__
11 pop [4] ; 执行后,寄存器(sp) = __002C__
12 pop [2] ; 执行后,寄存器(sp) = __002E__
13 pop [0] ; 执行后,寄存器(sp) = __0030__ 

1)问题1:指令mov ss, ax和mov sp, 30执行后,栈顶的逻辑地址和物理地址是?

栈顶的逻辑地址为0020:0030, 物理地址为00230H。

2)问题2:单步调试到汇编指令push [6]执行结束,pop [6]执行之前,使用d命令 d 20:0 7 查看此时数据空间内的数据是否有变化。

 

 3)问题3:汇编指令pop [0]执行结束后,使用d命令 d 20:0 7 查看此时数据空间内的数据是否有变化。

 

 4)问题4:

 

 

实验任务5

1)问题1:实验t命令单步执行 mov ss, ax 时,是单步执行到这一条指令就暂停了吗?后面的指令mov sp, 30 是什么时候执行的?

单步执行完 mov ss, ax后没有暂停,而是接着执行下一条指令,即 mov sp, 30这一条指令,这是因为原本在第二次t命令之后,cs:ip指向的命令是mov ax,2010,而不是原本的mov sp,30。ss的内容送入之后,sp的内容也立刻被送入。

2)问题2:根据汇编指令,前三条指令执行后,00220H ~ 0022fH被设置为栈空间。并且,初始时,已通过f命令将初始栈空间全部填充为0。观察单步调试时,栈空间00220H ~ 0022fH内存单元值的变化,特别是图示中黄色下划线表示出的数据值。根据实验观察,尝试思考和分析原因。

08 01 为偏移地址。3F 07 为程序段地址,作为暂存地址,在该程序中存在中断机制,需要暂存原程序的入口,故存了下来。

 

实验任务6

1)实验masm、link,汇编、连接,结果如下:

 

 2)查看psp

 

观察到前两个字节是CD 20 。

 

实验任务7

1)补全程序:

 1 assume cs:code 
 2 code segment 
 3     mov ax, __cs___ 
 4     mov ds, ax 
 5     mov ax, 0020h 
 6     mov es, ax 
 7     mov bx, 0 
 8     mov cx, __17H___ 
 9     s: 
10         mov al, [bx] 
11         mov es:[bx], al 
12         inc bx 
13     loop s 
14     mov ax, 4c00h 
15     int 21h
16 code ends 
17 end

要使代码被复制,则需先将cs放入到ds中,即第一空为cs;第二空位复制字节的循环次数,即为17H。

 2)代码复制成功:

 

标签:__,编码,汇编,sp,mov,寄存器,ax,执行,调试
来源: https://www.cnblogs.com/wzh23moon/p/15464273.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有