码迷,mamicode.com
首页 > 其他好文 > 详细

汇编实验二

时间:2018-10-28 13:37:30      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:程序   alt   连续   数据   并且   单元   写入   了解   内存   

(1)使用debug,将下面的程序段写入内存,逐条执行

使用e命令修改 0021:0~0021:7数据,将连续8个字节改为30H, 31H, 32H, 33H,34H,35H,36H,37H

技术分享图片

用a命令写入指令

技术分享图片

用t命令逐条执行

技术分享图片

技术分享图片

技术分享图片

得到数据:

mov ax,0021

mov ds,ax

mov ax,2000

mov ss,ax

mov sp,0100

mov ax,[0]        ;ax=3130H

add  ax,[2]        ;ax=6462H

mov bx,[4]        ;bx=3534H

add  bx,[6]        ;bx=6C6AH

push ax            ;sp=00FEH; 修改内存单元地址是2200:FE,内容为6462H

push bx            ;sp=00FCH; 修改内存单元地址是2200:FC,内容为6C6AH

pop  ax             ;sp=00FEH;ax=6C6AH

pop  bx             ;sp=0100H;bx=6462H

push [4]            ;sp=00FEH; 修改内存单元地址是2200:FE,内容为3534H

push [6]            ;sp=00FCH; 修改内存单元地址是2200:FC,内容为3736H

 

(2)观察图中实验过程,分析:为什么2000:0~2000:f中内容会发生改变

用a命令输入指令

用e命令修改内存的内容

技术分享图片

用r命令查看内容

并用t命令逐条执行,同时用d命令查看内存中的内容

技术分享图片

技术分享图片

观察发现内存2000:0~2000:f中存放了cs和ip的值,并且位置改变

猜想:有可能是执行操作时修改了内存,至于原因不清楚,可能和栈有关

 

总结:

本次实验更加困难,但加深了对于debug工具的认识,对于指令更加了解。

同时发现自己对于栈没有足够的认识,不能够熟练掌握。但是知道了push和pop指令的用法。

汇编实验二

标签:程序   alt   连续   数据   并且   单元   写入   了解   内存   

原文地址:https://www.cnblogs.com/baixingyeblog/p/9865113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!