实验一 用机器指令和汇编指令编程(1)
一、macos 环境下 关于dosbox 的使用
1、下载masm.7z并解压
2、启动磁盘工具 并在访达中显示 直接在此目录下创建文件夹(名称不能含中文字符)并把masm 解压至此文件夹中
3、此时打开dosbox 并输入 mount d /文件夹名称/masm 即可 之后键入 d: 进入虚拟盘符d
键入debug 即可使用debug工具
二、实验任务
1、使用debug工具将下方程序段填入内存并逐条执行,观察每条指令执行后cpu中相关寄存器中的内容变化。
1)step1:用a命令将指令写入内存。
step2:用t指令单步调试
2)step1:用e命令将指令写入内存
step2:用t命令单步调试
2:将下面三条指令写入从2000:0开始的内存单元内,利用这三条指令计算2的8次方
实验结果:
该程序在执行jmp 2000:0003命令之后 cs=2000H,ip=0003H。其后进入循环(我对此有点点疑惑🤔,一个数据的十六进制左移动一位相当于乘16,2的八次方相当于左移两位,可我不知道该由何处表现出来 实验过程中ip的值并不是2的倍数增加的 那由何处表示这个8次方呢?🤔可能往后的学习过程中会了解吧)
3、查看内存中的内容
如图 可见日期为92.01.01
但其值不可改变 因为rom格式为只读,并不可改变其值
4、向内存B8100H 开始的单元中填写数据
观察到
一个字符由两个字节构成 前一个规定形状,后两个决定颜色。
通过这段时期对汇编语言的学习,发现自己对于计算机内存空间的理解有一点点初步入门,可是随之带来的却是无穷无尽的困惑
我想在接下来的学习过程中慢慢探索发现,使自己对于汇编语言的理解更加深入。