在装完DosBox环境之后,就可以用debug模式进行汇编指令的编程了。

  • 实验内容:

    

首先用a指令进行数据的储存,然后用t命令进行调试。

可以发现ax,bx在不同的命令下发生了改变,cs的地址和指令是相同的,ip的值也是根据输入指令的长度而不断的增加。

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

    mov ax,1

    add ax,ax

    jmp 2000:0003

先观察一下实验要求,执行完第一步后ax= 1,第二步后ax  = 2,执行add 1次 2*2,执行2次,就是2*2*2就是2的3次方,那么2的8次方 就 add 执行 7次。

执行之前先将指令指向add语句 这样就会重复执行 add语句,用jmp 指令更改CS、IP寄存器的值,从而控制CPU执行目标指令。之后,就可执行我们写的汇编指令了,我们要先使用r指令改变 cs 和ip的指向,cs为代码段寄存器,ip为指针寄存器。在任意时刻,CPU将cs:ip指向的内容当做指令执行。

关于执行命令t的执行次数:执行第一二步执行需 2个t,那么执行第三步的t的时候实际上只是改变cs:ip的指向,并没执行cs:ip指向内容的机器指令,后面的7个jmp 每个需要执行2个t才能执行add方法。所以共需要执行t 16次才能计算出2的8次方。

第一次t命令:

最后一次t命令:(最后短线位置的t手抖了)

(3)查看内存中的内容。

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

尝试修改:

发现无法修改。

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

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

请读者先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。

可以看到,向B8100H单元中输入这些数据后,可以观察到界面上出现了一些彩色的图案,黄方框标识。

接着在相同的地址内填写不同的数据,可以看到出现了完全不同的图案。

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

说实话,我也不知道这是怎么回事。我就去查了查,度娘告诉我:这一段内存为显存,是RAM,可以改变其值在屏幕上的显示,其中这一个字符占两个字节,前一个(低)为字符的ASCII码,后一个(高)为要显示的颜色。

实验总结:

(1)首先得理解并且熟练操作的一些指令。

在debug模式下常用的命令:

R命令:查看、改变CPU寄存器的内容;

D命令:查看内存中的内容;

E命令:改写内存中的内容;

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

T命令:执行一条机器指令;

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

(2)通过这次实验,对debug的一些基本操作有了基本了解,如何写入机器代码和汇编代码,查看所需要的内容,并且知道了某些内存中存储的内容,以及它们中的内容是否可变等知识。

如果有什么错误的话,还希望各位大佬指出。谢谢!

汇编实验一 查看CPU和内存,用机器指令和汇编语言指令编程相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Debug的使用: Debug 是DOS和Windows 实模式 (8086方式)的调试器,可以查看修改寄存器内容以及内存内容,机器码级别 Debug命令: 1)R命令:显示或修改寄存器内容 -r 显 ...

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

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

  10. cpu使用率 htop显示_Linux查看CPU和内存使用情况

    1.gnome-system-monitor GNOME System Monitor 是一个显示最近一段时间内的CPU.内存.交换区及网络的使用情况的视图工具.它还提供了一种查看CPU及内存使用情况 ...

最新文章

  1. 使用IntelliJ IDEA 15和Maven创建Java Web项目
  2. 我的世界服务器物品绑定插件,我的世界灵魂绑定插件详解
  3. NFS Volume Provider(Part I) - 每天5分钟玩转 OpenStack(62
  4. MyBatis Generator 学习
  5. 反思快速在新项目中找字段的方法
  6. 《重返人类演化现场》阅读笔记
  7. apache 配置php 版本错误u,PHP+Apache+MySQL 在配置环境时遇到的问题
  8. 这种简历咋找工作?(运营)
  9. Migrate blog from blogcn here
  10. oracle32转64,Oracle10g下载地址--多平台下的32位和64位 (转)
  11. Linux-lsof
  12. 模型预测控制的缺点_开发者说丨Apollo代码学习—模型预测控制(MPC)
  13. Java GC G1 详解
  14. 一元二次方程的解c语言,一元二次方程求解程序完整代码
  15. TestFlight构建版本提示缺少出口合规证明
  16. 茶云个人导航系统v1.2源码 带后台+网易云歌单播放功能+腾讯智能在线客服功能
  17. ACAD和dll资源切换
  18. 程序员福音 免费在线制作证件照
  19. abb机器人码垛编程详解_ABB机器人码垛程序
  20. kaggle医学图像中的CT值(Hounsfield Unit)

热门文章

  1. HGNC 数据库-人类基因组数据库
  2. mysql数据库巡检方案_美团 MySQL 数据库巡检系统的设计与应用
  3. 51CTO微职位一次通过PMP之经验浅谈
  4. LaTeX快速入门(超详细~)
  5. 计算机测试穿越,计算机的迷雾,如何穿越?
  6. python http通信接口开发
  7. 三段式状态机的原理/代码/仿真,1001序列检测实例Verilog
  8. QGIS数据分析入门——Qgis下载及界面介绍(一)
  9. ANSYS 有限元分析 命令流 实例
  10. 用二维数组打印杨辉三角