汇编实验一

实验1 用机器指令和汇编指令编程


1. 教材实验1结论


 

任务1

用e命令和a命令两种方式,写入内存。用t命令单步调试。

首先使用e命令将指令写入内存,然后用d命令查看对应地址的内容,再使用u命令查看对应的汇编语言。

 

使用a命令将指令写入内存,接着单步调试

 

 

 

 

 

任务2

利用jmp语句实现循环,通过累加计算2^8。

 

 

 

 

任务3

 

 

 

 

 

 

 

 使用d命令从起始地址FFF0:0000向后查询ff即256个字节,发现主板日期位于FFF0:00F0位置,为1992年1月1日。使用e命令尝试对其前3个字节进行修改,发现并未成功,分析可知ROM是只读存储器,不能修改其中内容。

任务4

 

 

 

 

 

 在起始地址为B810:0000的内存单元中写入数据会发现出现彩色的图案。修改输入的数据,显示的彩色图案也会随之不同,但是如果修改地址为1000:0000后写入相同数据则不会产生彩色图像。分析后得知,8086PC机内存中,A0000~BFFFF为显存地址空间,只有在该区域内写入特定数据会在屏幕对应位置显示图案。

 


 

2. 教材实验2结论  


任务1

 

使用 e 命令修改 内存单元0022:0~0022:f 中的数据50H,51H,52H,53H,54H,55H,56H,57H。

 

 使用 a 命令输入的 p74 指令

 

 每一行指令单步调试

 

 

 

 

 

推测与实验结果一致

mov ax,0022

mov ds,ax

mov ax,2200
mov ss,ax
mov sp,0100

mov ax, [0]   ;ax=5150
add ax,  [2]   ;ax=A4A2
mov bx, [4]   ;bx=5554
add bx,  [6]   ;bx=ACAA

push ax     ;sp=00FE;     修改的内存单元的地址是:2200:00FE 内容为:A4A2
push bx     ;sp=00FC;     修改的内存单元的地址是:2200:00FC 内容为:ACAA
pop ax       ;sp=00FE;      ax=ACAA
pop bx       ;sp=0010;    bx=A4A2
push [4]     ;sp=00FE;     修改的内存单元的地址是:2200:00FE 内容为:5554
push [6]     ;sp=00FC;     修改的内存单元的地址是:2200:00FC 内容为:5756

分析:段首地址寄存器DS内为0022H,该段前八个字节对应之前写入的50H...57H。栈基址SS=2200H,栈顶初始地址为SP=0100H,弹栈的时候SP+2,入栈的时候sp-2。 

 

任务2

 使用 a命令输入的 7 行指令,使用 e 命令修改 2000:0~2000:f 的值, 及修改后查看的部分

单步调试每一行汇编指令的截图。每一条指令单步调试后,都使用 d 命令查看 2000:0~2000:f 的值。观察每一条指令执行后相关寄存器值的变化,及 2000:0~2000:f 单元值的变化。

 

 

 

 

 

 

 以文字方式陈述:

  1.前3行汇编指令的功能,特别是,mov sp, 10意味着什么?初始时栈顶和栈底分别是?

    第一行:给ax寄存器赋值2000

    第二行:初始化栈基地址为ax中的值

    第三行:初始化栈顶偏移地址为10

    初始栈顶:2000:0010

    初始栈底:2000:000e

  2.基于单步调试观察到的变化,给出你对此的思考及可能原因分析。

    由于mov ss,**指令的特定,执行mov ss,ax 时其后边的指令将立即被执行。至于指令执行后靠近栈顶的10个字节中值立即有了变化,是对定义栈段时部分运行环境变量进行暂存,靠近栈顶的10个字节中的暂存数据分别是SS、IP、 CS 等的值。

 

posted @   rockdow  阅读(244)  评论(4编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
点击右上角即可分享
微信分享提示