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

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

|准备工作

  1.下载安装汇编相关软件

    64 位 Win7 及以上,可以通过虚拟 dos 工具来实现「Masm for Windows 实验环境 2015」

 

  2.debug工具用法

    Debug是DOS、Windows都提供的实模式(8086模式)程序的调试工具。

    使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。

 

  3.常用的Debug功能可通过在debug模式下输入“?”查询。如图:

    

    本次实验需要用到的命令,如图:

    

|实验结论

一、熟悉Debug程序及各个指令

  1.运行debug程序

  

  2.用r命令查看CPU中各个寄存器的内容

   

  3.用r命令修改寄存器ax中的内容,并用r命令查看更改是否成功

   

  4.用r命令修改CS和IP的内容,并用r命令查看是否修改成功

   

  5.用d命令查看内存1000:0和1000:9处的内容

   

  可以发现,DEBUG列出了从指定内存单元开始的128个内存单元的内容。在使用了d 1000:0之后,DEBUG列出了1000:0~1000:7F中的内容。

       左边是每行的起始地址;中间是从指定内存单元开始的128个内存单元的内容,以十六进制格式输出;右边是每个内存单元中的数据对应的可显示的ASCII码字符。

  也可以指定d命令的查看范围,采用“d 段地址:起始偏移地址 结尾偏移地址”,例如“d 1000:0 9”可以查看1000:0~1000:9中的内容。

   

   6.用debug的e命令改写1000:0~1000:3内存中的内容

   

  也可以用e命令向内存中写入字符

   

   7.用e命令向内存中写入机器码,用u命令查看内存中机器码的含义,用t命令执行内存中的机器码。

   

   

  可以发现ip的值自动发生了变化,可用t命令继续执行

  

   8.用debug的a命令以汇编指令的形式在内存中写入机器指令(两种语法格式)

   

二、p45实验任务

1.使用DEBUG,将程序段写入内存中,逐条执行,观察每条指令执行后CPU中相关寄存器中的内容变化。

  (1.用e命令写入机器码

   

  (2.用a命令输入汇编指令

   

  (3.使用t命令执行

   

  第十四次使用t命令时结果

   

  实验过程中ip的值每一步都会指向下一条汇编指令的内存单元。

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

MOV AX,1

ADD AX,AX

JMP 2000:0003

  (1.用a命令输入汇编指令

   

  (2. 用r命令修改cs和ip的值

   

  (3.用t命令单步执行第16次得到2的8次方16进制格式(ax=0100)。

   

3.查看内存中的内容 

  (1.通过d命令查找

   

  (2. 用e命令尝试修改生产日期,并通过d命令查询

   

  修改日期失败,说明ROM只读存储器中的,无法改写。

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

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

  观察现象

   

  写入不同的数据

   

  改变填写地址

   

  可以发现写入不同的数据,以及写入不同的内存单元,结果都会有所不同。

|总结与体会

       通过对第一章,第二章的学习,我对汇编语言有了深入的了解,接触并深入了解了一部分寄存器,从寄存器的角度理解了CPU的工作原理。初次学习并掌握了mov,add,jmp等汇编指令。

       在实验1中,首先学会了DEBUG DOSBOX环境的配置,学会了多种debug命令。我体会到了计算机内部的神奇,接触到了最底层的机器码。也尝试了用机器码和汇编指令编程。

       感觉自己已经具有了一点点汇编语言编程的思维,也对之后的课程产生了浓厚的兴趣。

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/GloriousABC/p/9851709.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值