汇编设计实验1

实验1 查看CPU的内存,用机器指令和汇编指令编程

用到的debug功能有:

R命令查看,改变CPU寄存器的内容

D命令查看内存中的内容

E命令改写内存中的内容

U命令将内存中的机器指令翻译成汇编指令

T命令执行一条机器指令

A命令以汇编指令的格式在内存中写入一条机器指令

1.首先下载Dosbox和debug.exe,并配置文件。

2.进入dosbox环境,查看配置是否正确

3.运行命令

R命令查看CPU寄存器的内容

R命令改变CPU寄存器的内容

D命令查看内存中的内容

E命令改写内存中的内容

U命令将内存中的机器指令翻译成汇编指令

A命令以汇编指令的格式在内存中写入一条机器指令

4.实验任务1:使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。

(1)使用A命令输入,直接输入汇编命令

(2)使用rcs与rip命令将CS:IP指向对应位置

(3)使用t命令查看,并观察CPU中相关寄存器中内容的变化

从中发现,CPU中寄存器已把我刚才输入的汇编指令在寄存器中实现,用t命令可以查看我刚才所输入的汇编指令和其在CPU寄存器中的位置。

5.实验任务2:将下面3条指令写入从2000:0开始的内存单元中,利用这三条指令计算2的8次方。

(1)输入指令

(2)修改cs:ip的值使其从2000:0的地址开始

(3)使用t命令查看,并观察CPU中相关寄存器中内容的变化,并查看2的8次方计算是否正确

6.实验内容3:查看内存中的内容

(1)查看内存FFF00H~FFFFFH中的内容

从中发现我的ROM 的生产日期为92年1月1号

(2)尝试将其修改为18年10月27号

发现生产日期并没有发生改变。原因是,我修改的是只读存储器,所以修改并没有用。

7.实验总结和体会

第一次的汇编实验我主要学到的是如何用debug查看CPU寄存器中的内容,并使用A,T,U,D,E,R命令操作CPU寄存器,还可以使用多种方式查看和修改寄存器中的数值。我也知道了我并不能修改内存地址为c000h的内存单元,因为那个是只读。

原文地址:https://www.cnblogs.com/daiyang/p/9860836.html

时间: 2024-12-28 16:10:50

汇编设计实验1的相关文章

汇编设计 实验1

实验1 查看CPU的内存,用机器指令和汇编指令编程 用到的debug功能有: R:命令查看,改变CPU寄存器的内容 D:命令查看内存中的内容 E:命令改写内存中的内容 U:命令将内存中的机器指令翻译成汇编指令 T:命令执行一条机器指令 A:命令以汇编指令的格式在内存中写入一条机器指令 1.首先下载DOSBOX 按照老师提供博客的方法进行安装和配置 2.运行命令 R 寄存器查看及修改 D 查看内存 E 改写内存中内容 U 翻译指令 3.实验任务1:使用Debug,将下面的程序段写入内存,逐条执行,

03-04面向对象设计原则_设计实验

设计实验 有 3 个开关:a b c 有 3 个电灯:x y z 要求实现: a 能控制 x b 能控制 x, y c 能 x 注意:1个灯泡可以被多个开关控制:1个开关可以同时控制多个灯泡 所谓"控制":当开关操作时,当前灯泡的状态发生翻转.亮->灭 或 灭->亮 import java.util.*; class Light { private boolean state; // 灯的状态.true: 亮 public String toString() { if(st

2017-2018-1 20155235 实验五 通讯协议设计 实验内容

2017-2018-1 20155235 实验五 通讯协议设计 实验内容 一.安装OpenSSL 二.通过混合密码系统进行防护 实验步骤 一.安装OpenSSL 在Ubuntu中完成 http://www.cnblogs.com/rocedu/p/5087623.html 中的作业 提交运行结果截图 在运行中出现了一些问题,会在下面的测试中遇到的问题详解 二.通过混合密码系统进行防护 在Ubuntu中实现对实验二中的"wc服务器"通过混合密码系统进行防护 提交测试截图) 实验流程 在虚

第二次课程设计实验

2019春第二次课程设计实验报告 一. 实验项目名称 贪吃蛇游戏 二. 实验项目功能描述 一个能由用户手动输入实现的用户操控一串字符数组移动达成相应条件改变字符数组的贪吃蛇游戏 三. 项目模块结构介绍 四. 实现界面展示 五. 代码托管链接 https://gitee.com/llf1202/flappy-1/blob/master/tcs.cpp 六. 实验总结 问题:游戏运行时,出现sleep(2000)函数没有定义 解决:开始我是怀疑我的代码打错了,某个函数打错了,反复对照书上的代码还是没

第二次课程设计实验报告

2019春第二次课程设计实验报告 一.实验项目名称 贪吃蛇小游戏 二.实验项目功能描述 玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁或者自己游戏结束. 三.项目模块结构介绍 程序关键在于表示蛇的图形及蛇的移动.用一个小圆点来表示蛇的一节身体,身体每长一节,增加一个圆点,蛇头用四节来表示.移动时必须从蛇头开始,所以蛇不能向相反的大反向移动,如果不按任意键,蛇自行在当前方向上前移,如果按与蛇方向相反的方向键,此游戏就会暂停,再按向前的方向键才能继续游戏,但按下有效方向键后,蛇头

2109春第一次课程设计实验报告

2019春第一次课程设计实验报告 一.实验项目名称: 飞机游戏的编写 二.实验项目功能描述: 这个实验主要是实现游戏的正常运行,实现控制飞机的移动功能,增加其实用度, 同时还实现发射子弹和出现敌机的操作,通过发射子弹,击败静止的或者移动的 敌机,最终实现通关或者死亡: 三.项目模块结构介绍: 第一步:代码重构,实现控制飞机移动的功能. 第二步:新式子弹,初始化子弹在飞机的正上方,子弹发射后自动向上移动: 第三步:静止的敌机,增加静止的敌机: 第四步:敌机移动,让敌机自动向下移动: 第五步:击中敌

2019年春第一次课程设计实验报告

2019春第一次课程设计实验报告 一.项目实验名称:飞机游戏 二.实验功能描述:操作者可以通过WASD来控制飞机移动,按下空格键飞机则可以发射子弹,子弹击中敌机则敌机消失,敌机消失后则可以得分并且刷新敌机位置. 三.项目模块介绍: 游戏最终代码: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> // 全局变量 int position_x,posit

2019春第3次课程设计实验安排

2019春第3次课程设计实验安排 一.实时钟表 二.实验功能描述: 由秒针的转动,带动分针的转动,以及再带着时针的转动.同时我们的钟表是可以与我们准确的时间相联系,也就是说这是一个比较准确的时间点,以及是非常简便的,当然秒针转一圈,分针动一下,以及分针转一圈,时针动一下,采用的是用角度来进行计算的,以及结束一圈的结束点以及起始点,都是采用的角度的结算. 三.项目介绍 1.绘制静态秒针 秒针的转动 根据实际时间转动 4.添加时针和分针 5.添加表盘刻度 四.实现界面展示 五.代码托管链接 http

2019年春第三次课程设计实验报告

··2019年春第三次课程设计实验报告 一.实验项目名称 反弹球小游戏多球反弹动画 二.实验项目功能描述 能利用数组储存多个小球的速度和坐标,再利用循环语句实现球与球之间的碰撞和球与墙壁之间的碰撞 三.项目模块结构介绍 利用主函数定义全局变量,在使用while语句进行循环,再用批量绘制函数和延时函数 四.实现界面展现 五.代码托管链接 https://gitee.com/zhangwei666666/c_language_game 六.实验总结 这周第一次使用vs软件用起来有点不适应,边百度边摸