实验一 查看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和内存 & 用机器指令和汇编指令编程的更多相关文章

  1. 查看CPU和内存,用机器指令和汇编指令编程【Debug模式】

    命令 作用 举例 R 查看,改变CPU寄存器的内容 查看:r 改写:r ax D 查看内存中的内容 d 1000:0 f E 改写内存中的内容 e 1000:0 f U 将内存中的机器指令翻译成汇编指 ...

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

    (1):使用debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内存的变化. 机器码        汇编指令 b8 20 4e     mov ax,4E20H 05 ...

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

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

  4. Linux 查看CPU,内存,硬盘 !转

    Linux 查看CPU,内存,硬盘 本文转自:http://hi.baidu.com/mumachuntian/item/a401368dbe8a66cab07154e8 1 查看CPU 1.1 查看 ...

  5. CentOS查看CPU、内存、网络流量和磁盘 I/O

    安装 yum install -y sysstat sar -d 1 1 rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/swrqm/s: 每秒进行 merge 的 ...

  6. Linux查看CPU和内存使用情况 【转】

    Linux查看CPU和内存使用情况 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 ...

  7. 操作系统复习——如何查看一个进程的详细信息,如何追踪一个进程的执行过程 ,如何在 Linux 系统下查看 CPU、内存、磁盘、IO、网卡情况?epoll和select区别?

    1. 如何查看一个进程的详细信息,如何追踪一个进程的执行过程 通过pstree命令(根据pid)进行查询进程内部当前运行了多少线程:# pstree -p 19135(进程号) 使用top命令查看(可 ...

  8. CentOS查看CPU、内存、网络流量和磁盘 I/O【详细】

    安装 yum install -y sysstat sar -d 1 1 rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/swrqm/s: 每秒进行 merge 的 ...

  9. 『开发技术』Ubuntu与Windows如何查看CPU&GPU&内存占用量

    0 序·简介 在使用Ubuntu或者Windows执行一些复杂数据运算时,需要关注下CPU.GPU以及内存占用量,如果数据运算超出了负荷,会产生难以预测的错误.本文将演示如何用简单地方式,实时监控Ub ...

随机推荐

  1. html5 音乐 audio

    手机做小项目,需要添加音乐,做此笔记,依赖jquery,代码如下: <!DOCTYPE html> <html lang="en"> <head> ...

  2. Django框架简介(1)

    目录 手写web框架 基于wsgiref模块写web服务端框架 python三大主流框架 django框架介绍 注意事项 django下载方法 django项目及app的创建 命令行创建项目 pych ...

  3. C# WCF发布服务的元数据的方式

    发布服务元数据的方式有两种:一是基于HTTP-GET协议提供元数据,它是一种绝大多数平台都能支持的简单text-based协议:另一种是元数据交换终结点. 1.基于HTTP-GET协议 <?xm ...

  4. 对React性能优化的研究-----------------引用

    JSX的背后 这个过程一般在前端会称为“转译”,但其实“汇编”将是一个更精确的术语. React开发人员敦促你在编写组件时使用一种称为JSX的语法,混合了HTML和JavaScript.但浏览器对JS ...

  5. pdf转换

    namespace Utilities { public static class PDFHelper { /// <summary> /// Html转Pdf /// </summ ...

  6. HTML中的表格和图像总结

    ㈠表格 ⑴表格的基本结构 ①表格的基本标签有:table标签(表格),tr标签(行),td标签(单元格).<tr>标签和<td>标签都要在表格的开始标签<table> ...

  7. Spark 电子书

    Spark最佳实践 (陈欢/林世飞著) 完整pdf扫描版[39MB]http://pan.baidu.com/s/1i4LNOVVSpark SQL编程指南 (Spark 官方文档翻译) 中文PDF版 ...

  8. ID生成 雪花算法

    /** * ID生成 雪花算法 */ public class SnowFlake { public static SnowFlake getInstance() { return Singleton ...

  9. [CSP-S模拟测试]:五子棋(模拟)

    题目传送门(内部题122) 输入格式 输入文件第一行为一个正整数$n$,表示双方总共下了多少步棋. 接下来$n$行,输入文件每行两个正整数.第$i$行的两个数$x,y$表示第$i$步的棋子下在了第$x ...

  10. Java使用FileOutputStream写入文件

    From: http://beginnersbook.com/2014/01/how-to-write-to-a-file-in-java-using-fileoutputstream/ /* 使用F ...