• 实验名称 用机器指令和汇编指令编程(1)
  • 实验日期   2018.10.22
  • 学院:计软院
  • 专业:计算机科学与技术
  • 年级:2017级
  • 班次:5班
  • 姓名:陈奕明
  • 学号 20171308194

一、实验目的 
1. 掌握使用debug工具编写和调试汇编命令的方法

2. 掌握第1-2章所学的关于CPU、寄存器、内存的基础知识

3. 掌握第1-2章涉及的几条指令mov, add, sub, jmp的用法

二、实验准备 
1. 复习教材第1~2章内容,完成教材内相关检测点

2. 结合教材实验1 (P35)及公邮文件中心→实验下的 “实验1辅助文档.pdf”学习debug 工具用法。

三、实验内容 
1. 教材实验1(P35)

(1)练习教材 P35-45「预备知识:Debug 的使用」,学习 debug 启动、退出及常用指 令用法;

(2)在练习基础上,完成「2. 实验任务」

Tips: 「2. 实验任务」中每一项任务都可以在教材前序内容或练习中找到提示线索。建议先 完成「二、实验准备」中要求的内容及实验内容的第(1)项,这样完成「2. 实验任务」时会 很容易完成。比如: 实验任务(1)可参照教材P41-43的(7)完成; 实验任务(2)与教材 P20的检测点(2)相似且相关;

四、实验结论 
任务一:

把如下的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。

首先使用e指令按题目要求的写入机器码指令(随便找了个地址1000:0):

到达文本输入限制后没办法,只能先执行了...执行完后,看一下已经写入数据的内存单元的情况...嗯...数据是对的

继续输入并执行,执行完全部代码后,使用u指令反汇编机器码命令:

跟书上写明的汇编命令相符。

然后输入汇编命令:

中间又把1和字母l分不清了,出了个error。。。

命令输入完毕,-t命令单步执行:

和上课听讲的一样,对指定的寄存器进行数据的改写操作。

后面的命令行有点多就用-t+数字=执行往后的几条命令全部执行了:

最后的结果:

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

mov ax,1

add ax,ax

jmp 2000:0003

解题思路:2的三次方就是8,再看下题目给我们的三条命令。执行完第一条后ax的值为1,执行完第二条命令后ax的值为2,那么就需要我们再执行这条语句7次了,所以就要使用jmp命令,通过改变CS和IP寄存器的值来使得CPU继续反复执行这条命令,所以往下又写了七句jmp 2000:0003使得CPU再反复执行其次该语句,从而使得AX中的值变为二的八次方。。。。这是最终结果。

最终实验截图

第三题

PC主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某几个单元中,请找到这个生产日期并且试图改变它。

实验截图如下:

试图修改但是失败了,看来是因为ROM的关系,无法修改。

第四题

向内存B8100H开始的单元中填写数据,如:

-e B810:0000 01 01 02 02 03 03 04 04

这是进行了一系列实验过后的结果:

有这么些结果和感悟:

再向寄存器写入数据时,每多两个字节的数据就会产生一个新的颜色区域,而且写入区域的CS码每产生一次进位,就会使得产生的色块区域产生换行,最终得到了这么些结果。

五、实验心得与感悟
这次实验主要实验了R命令(用于查看、修改寄存器中的内容)、D命令(查看内存中的内容)、E命令(修改内存中的内容)、U命令(反汇编命令)、T命令(执行代码行命令)

第四题经过这么多次的实验测试,看来这一段内存空间是显存。

我的电脑屏幕运行Dosbox窗口极小,最后查到按Alt+Enter可以进入全屏模式进行操作。

当初安装Dosbox时经历过,千万别把程序装在系统盘,否则会有权限问题。

暂时就这样把,肯定还有许多要学的,要完善的,好好学习汇编!!

2018-10-27  21:28:25于宿

转载于:https://www.cnblogs.com/cymwn-com/p/9867855.html

用机器指令和汇编指令编程(修改版)相关推荐

  1. [汇编语言]实验一:查看CPU和内存,用机器指令和汇编指令编程。

    实验一 实验任务: 查看CPU和内存,用机器指令和汇编指令编程. 实验内容: (1)实验代码: 开始执行命令: (2)实验代码: (3)实验代码: 找到了,日期为:01/01/92,这个是虚拟机dos ...

  2. 【实验报告】微处理器原理与应用 CPUHomework1.2 上篇【掌握DEBUG基本命令及其功能 查看CPU和内存 用机器指令和汇编指令编程】

    实验报告 课程名称:微处理器原理与应用 实验名称:CPUHomework1.2 掌握 DEBUG 基本命令及其功能 文章目录 实验报告 [实验目的] [实验要求] 上篇[查看CPU和内存,用机器指令和 ...

  3. 汇编语言——用DOSBox的debug查看CPU和内存 用机器指令和汇编指令编程

    实验一 查看CPU和内存,用机器指令和汇编指令编程   实验目的 了解什么是Debug,以及Debug中需要用的一些功能 R:查看.改变CPU寄存器的内容 D:查看内存中的内容 E:改写内存中的内容 ...

  4. 实验一 查看CPU和内存 用机器指令和汇编指令编程

    一. Debug的使用 1. 什么是Debug Debug是Dos.Windows都提供的实模式(8086方式)程序调试的工具.使用它,可以查看CPU各种寄存器的内容.内存的情况和在机器码级跟踪程序运 ...

  5. 实验1 查看CPU和内存、用机器指令和汇编指令编程

     实验任务 一.使用Debug,用E命令和A命令以两种方式将指令写入内存 机器码        汇编指令 b8 20 4e     mov ax,4E20H 05 16 14     add ax,1 ...

  6. 实验二:用机器指令和汇编指令编程

    实验任务(1) 1.使用 e 命令修改 0021:0~0021:f 数据,及修改后查看是否正确写入的操作 修改数据并查看 2.使用 a 命令输入的 p74 指令 输入汇编指令 3.每一行指令单步调试 ...

  7. 【汇编语言实验一】用机器指令和汇编指令编程(1)

    任务一:使用debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化. 法一: 1.使用e命令将指令写入内存,并使用u命令进行反汇编. (此处▲为截图快捷键误按) ...

  8. 实验一 查看CPU和内存,用机器指令和汇编指令编程

    1.打开DosBox,输入指令:mount c d:\masm 2.使用R命令查看.改变CPU寄存器的内容 (1)查看 CS=073F,IP=0100,所以内存073F:0100处的指令为CPU当前要 ...

  9. 实验1 查看cpu和内存,用机器指令和汇编指令编程

    四:实验结论 实验1 分别用E命令和A命令将指令写入内存: (1)E命令 再用u命令进行反汇编: (2)A命令 (3)用t命令逐条执行 在执行之前要注意cs:ip的指向,因此要用r命令进行修改: 再用 ...

最新文章

  1. 我国拟开展2016年新型智慧城市评价工作
  2. k8s mysql volume_Kubernetes(k8s)中文文档 名词解释 Volumes_Kubernetes中文社区
  3. Windows Server 2003 Clustering 服务
  4. 如何在前端进行短信接口和语音验证接口的使用
  5. 关于ICallbackEventHandler的疑问
  6. 宽量程电压电流 stm32_电压、电阻知识点汇总
  7. 微型计算机的普通显示器通常有两组引线 即,微型计算机的显示屏通常具有两组引线,即()...
  8. (2)verilog语言编写打两拍
  9. C语言指针-从底层原理到花式技巧,图文和代码给你讲解透彻
  10. Android已读未读功能,Android实现小圆点显示未读功能
  11. 终端SSH工具SecureCRT 9.2.0 for Mac
  12. 植保飞行器(G 题)--2021 年全国大学生电子设计竞赛
  13. 分布式智能微电网的体系结构操作系统
  14. 快速批量下载 B 站视频
  15. java zip解压 中文_java解压ZIP 解决中文乱码 (GBK和UTF-8)
  16. Vue实现省、市、县三级联动
  17. 有关关键路径的概念和算法
  18. 2023阿里云账号注册流程(多种注册方法随便选)
  19. part01.03 委托与 Lambda 表达式(三):Lambda 表达式
  20. 前端面试题:px、rem、em、vh、vw、rpx的区别

热门文章

  1. Vue 中的组件缓存
  2. 机智的ensemble
  3. python web开发 CSS基础
  4. 04.卷积神经网络 W2.深度卷积网络:实例探究(作业:Keras教程+ResNets残差网络)
  5. LeetCode 379. 电话目录管理系统(哈希set)
  6. LeetCode 422. 有效的单词方块
  7. LintCode 1753. 写作业(二分查找)
  8. LeetCode 72. 编辑距离(DP)
  9. LeetCode 396. 旋转函数(数学)
  10. JavaScript试题练习题