实验一 查看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. 【Linux学习四】Linux下Vim命令操作

    1.Vim介绍 Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性. 第一阶段通过vimtutor的学习,加强vim的熟练度 1.1光标移动 hjkl左 ...

  2. MYSQL之数据库初识、安装详解、sql语句基本操作

    目录 MYSQL之数据库初识及安装详解 1.什么是数据库? 1.什么是数据?(data) 2.什么是数据库?(databases,简称DB) 2.为什要用数据库? 3.什么是数据库管理系统?(Data ...

  3. Atcoder Regular Contest 066 F genocide【JZOJ5451】

    题目 分析 \(s[i]\)表示a前缀和. 设\(f[i]\)表示做完了1~i的友谊颗粒的最优值(不一定选i),那么转移方程为 \[f[i]=max\{f[i-1],max\{f[j]-s[i]+s[ ...

  4. python生成二维码图片

    依赖Pillow库. import qrcode # 简单用法 img = qrcode.make('Hello World!') img.save('qr_code.png') # 高级用法 qr ...

  5. Python 面向对象Ⅴ

    基础重载方法 下表列出了一些通用的功能,你可以在自己的类重写: 运算符重载 Python同样支持运算符重载,实例如下: 以上代码执行结果如下所示: 类属性与方法 类的私有属性 __private_at ...

  6. QT:QSS ID选择器无效

    我正在学习使用Qt样式表给我的应用程序添加不同的样式.我上网看了看Qt文档,上面说你可以使用一种ID选择器,它可以把主题应用到某些对象上.我就是这样实现这个特性的: QPushButton#butto ...

  7. jquery attribute$=value选择器 语法

    jquery attribute$=value选择器 语法 作用:[attribute$=value] 选择器选取每个带有指定属性且以指定字符串结尾的元素. 语法:$("[attribute ...

  8. [pwnable.kr]Dragon

    0x00: dragon 是一个UAF漏洞的利用. UseAfterFree 是堆的漏洞利用的一种 简单介绍 https://www.owasp.org/index.php/Using_freed_m ...

  9. Python天天学_03_基础三

    Python_day_03 金角大王: http://www.cnblogs.com/alex3714/articles/5740985.html ------Python是一个优雅的大姐姐 学习方式 ...

  10. HDU 6444 Neko's loop ( 2018 CCPC 网络赛 && 裴蜀定理 && 线段树 )

    题目链接 题意 : 给出一个 n 个元素的环.可以任意选择起点.选完起点后.可以行走 m 步.每次前进 k 个单位.所走到的点将产生正或负贡献.问你一开始得准备多少才能使得初始资金加上在环上获取最大利 ...