实验一 用机器指令和汇编指令编程(1)

一、macos 环境下 关于dosbox 的使用

1、下载masm.7z并解压

 实验一 用机器指令和汇编指令编程(1) 

2、启动磁盘工具 并在访达中显示 直接在此目录下创建文件夹(名称不能含中文字符)并把masm 解压至此文件夹中

实验一 用机器指令和汇编指令编程(1)

 3、此时打开dosbox  并输入 mount d /文件夹名称/masm 即可 之后键入 d: 进入虚拟盘符d 

键入debug 即可使用debug工具 

实验一 用机器指令和汇编指令编程(1)

二、实验任务

1、使用debug工具将下方程序段填入内存并逐条执行,观察每条指令执行后cpu中相关寄存器中的内容变化。

 1)step1:用a命令将指令写入内存。 

实验一 用机器指令和汇编指令编程(1)

step2:用t指令单步调试

实验一 用机器指令和汇编指令编程(1)

2)step1:用e命令将指令写入内存

实验一 用机器指令和汇编指令编程(1)

step2:用t命令单步调试

实验一 用机器指令和汇编指令编程(1)

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

      实验结果:

实验一 用机器指令和汇编指令编程(1)

 

 该程序在执行jmp 2000:0003命令之后 cs=2000H,ip=0003H。其后进入循环(我对此有点点疑惑????,一个数据的十六进制左移动一位相当于乘16,2的八次方相当于左移两位,可我不知道该由何处表现出来 实验过程中ip的值并不是2的倍数增加的 那由何处表示这个8次方呢?????可能往后的学习过程中会了解吧)

3、查看内存中的内容

实验一 用机器指令和汇编指令编程(1)

如图 可见日期为92.01.01

但其值不可改变 因为rom格式为只读,并不可改变其值

 实验一 用机器指令和汇编指令编程(1)

 

4、向内存B8100H 开始的单元中填写数据

观察到 

实验一 用机器指令和汇编指令编程(1)

一个字符由两个字节构成 前一个规定形状,后两个决定颜色。

 

 

通过这段时期对汇编语言的学习,发现自己对于计算机内存空间的理解有一点点初步入门,可是随之带来的却是无穷无尽的困惑

我想在接下来的学习过程中慢慢探索发现,使自己对于汇编语言的理解更加深入。