汇编语言——用DOSBox的debug查看CPU和内存 & 用机器指令和汇编指令编程
实验一 查看CPU和内存,用机器指令和汇编指令编程
实验目的
了解什么是Debug,以及Debug中需要用的一些功能
R:查看、改变CPU寄存器的内容
D:查看内存中的内容
E:改写内存中的内容
U:将内存中的机器指令翻译成汇编指令
T:执行一条机器指令
A:以汇编指令的格式在内存中写入一条机器指令
实验内容及过程
(1)使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。
用e命令将指令写入内存,之后通过d命令查看内存中的机器代码,验证正确性。

u查看机器指令对应的汇编指令

用a命令将指令写入内存,同样使用d命令查看机器代码的正确性。

写好程序之后通过t命令单步执行,查看各个寄存器的值,根据题目要求,记录CS:IP的指向,具体结果的可以从下面的截图中获得。


(2)将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
用a命令在2000:000处写出指令,然后用r命令来修改CS为2000,IP为0,然后用t命令执行,直到ax中的值为10
因为默认的是十六进制,所以ax中的0010实际代表十进制的16
写入指令:

执行

(3)查看内存中的内容。
查看生产日期
根据题目可以看到生产日期存在内存FFF00H~FFFFFH中的某个单元,查看该内存。

可以在最后一行看到生产日期01/01/92在地址ffff5~ffff12处,下面用e进行修改;

因为是ROM,所以日期是不会改变的
(4) 向内存从B8100H开始的单元中填写数据,如:
-e B810:0000 01 01 02 02 03 03 04 04
请读者先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。

可以看到,向B8100H单元中输入这些数据后,可以观察到界面上出现了一些彩色的图案,已用红色方框标识。
接着在相同的地址内填写不同的数据,可以看到出现了颜色不同的数字。

下面改变输入数据的地址,可以看到显示的内容不变,位置改变了。

在改变地址的基础上,改变写入的数据,可以发现位置不变,内容改变,并且相对于上一步来说,将04的位置改为08,发现对应位置的内容的颜色也不一样了。

综合以上结果可以知道,这一段内存为显存,是RAM,可以改变其值在屏幕上的显示,其中这一个字符占两个字节,前一个(低)为字符的ASCII码,后一个(高)为要显示的颜色。
实验总结
通过这次实验,对debug的一些基本操作有了基本是了解,知道了各个指令所做的功能,如何写入机器代码和汇编代码,以及查看所需要的内容,并且知道了某些内存中存储的内容,以及它们中的内容是否可变等知识。这对以后进行更深入的学习是非常有帮助的。
---------------------
作者:ln8429
来源:CSDN
原文:https://blog.csdn.net/ln8429/article/details/46763157
版权声明:本文为博主原创文章,转载请附上博文链接!
汇编语言——用DOSBox的debug查看CPU和内存 & 用机器指令和汇编指令编程的更多相关文章
- 查看CPU和内存,用机器指令和汇编指令编程【Debug模式】
命令 作用 举例 R 查看,改变CPU寄存器的内容 查看:r 改写:r ax D 查看内存中的内容 d 1000:0 f E 改写内存中的内容 e 1000:0 f U 将内存中的机器指令翻译成汇编指 ...
- 实验一 查看CPU和内存,用机器指令和汇编指令编程
(1):使用debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内存的变化. 机器码 汇编指令 b8 20 4e mov ax,4E20H 05 ...
- 实验1 查看CPU和内存,用机器指令和汇编指令编程
·实验任务 (1)使用Debug,用E命令和A命令以两种方式将指令写入内存 机器码 汇编指令 b8 20 4e mov ax,4e20h 05 16 14 add ax,14 ...
- Linux 查看CPU,内存,硬盘 !转
Linux 查看CPU,内存,硬盘 本文转自:http://hi.baidu.com/mumachuntian/item/a401368dbe8a66cab07154e8 1 查看CPU 1.1 查看 ...
- CentOS查看CPU、内存、网络流量和磁盘 I/O
安装 yum install -y sysstat sar -d 1 1 rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/swrqm/s: 每秒进行 merge 的 ...
- Linux查看CPU和内存使用情况 【转】
Linux查看CPU和内存使用情况 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 ...
- 操作系统复习——如何查看一个进程的详细信息,如何追踪一个进程的执行过程 ,如何在 Linux 系统下查看 CPU、内存、磁盘、IO、网卡情况?epoll和select区别?
1. 如何查看一个进程的详细信息,如何追踪一个进程的执行过程 通过pstree命令(根据pid)进行查询进程内部当前运行了多少线程:# pstree -p 19135(进程号) 使用top命令查看(可 ...
- CentOS查看CPU、内存、网络流量和磁盘 I/O【详细】
安装 yum install -y sysstat sar -d 1 1 rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/swrqm/s: 每秒进行 merge 的 ...
- 『开发技术』Ubuntu与Windows如何查看CPU&GPU&内存占用量
0 序·简介 在使用Ubuntu或者Windows执行一些复杂数据运算时,需要关注下CPU.GPU以及内存占用量,如果数据运算超出了负荷,会产生难以预测的错误.本文将演示如何用简单地方式,实时监控Ub ...
随机推荐
- java7连接数据库 网页 添加学生信息测试
石家庄铁道大学2019年秋季 2018 级课堂测试试卷(六)(10分) 课程名称: JAVA语言程序设计 任课教师: 王建民 考试时间: 150 分钟 一. 考试要求: 1登录账号 ...
- 多线程(三) 同步synchronized
五.同步 1.锁 多线程程序一般是为了完成一些相同的工作而存在的,因此有时间也会共享一些资源,例如对象.变量等等,此时如果不对各个线程进行资源协调,就会出现一些冲突,从而导致程序功能失效.例如下面的示 ...
- 二值图像连通分量的提取(python+opencv)
算法: 第一步,将图片转换为二值图像A 第二步,创建和A相同大小但是元素都为0的图像B,并复制A到A_copy中 第三步,A中任选一点值为255的像素,设为p1,并使用计算连通分量算法,当算法收敛时, ...
- Java 建造者模式 简单的理解
建造者模式 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式,使用多个简单的对象一步一步构建成一个复杂的对象. 意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表 ...
- DveOps路线指南
学习DevOps所需的技能 1. 编程语言 python java javascrit 2. 学习不同的操作系统概念 进程管理,线程和兵法,套接字,I/O管理,虚拟化,内存储存储和文件系统. 3. ...
- Python 文件I/OⅡ
File对象的属性 一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息. 以下是和file对象相关的所有属性的列表: 如下实例: 以上实例输出结果: close()方法 File ...
- 基于nc命令监控服务端口的Shell脚本
Shell代码: #!/bin/bash export LANG=en_US.UTF- #IP Address=127.0.0.1 #Port Port= #尝试的次数 n= #nc timeout, ...
- Jquery实现div左右重复来回走动
<!DOCTYPE HTML><html><head> <meta charset=utf-8 /> <title>UFO来了</ti ...
- Spring MVC遭遇checkbox的问题解决方案
转:http://lavasoft.blog.51cto.com/62575/1407213 Spring MVC遭遇checkbox的问题是:当checkbox全不选时候,则该checkbox域的变 ...
- XFF和referer
XFF构造来源IP Refer构造来源浏览器