admin管理员组

文章数量:1621458

目录

1、软件下载:  Masm for Windows 2015(友好的文本编辑器,但是运行和调试仍会调出dosbox。)

2、 做亿点点说明

3、命令行方式运行汇编:(实验四会用到,终究逃不过)

4.实验报告


1、软件下载:  Masm for Windows 2015

(可以理解成友好的文本编辑器,其运行和调试仍会调出dosbox)

 安装包:   https://sm.myapp/original/Office/wasm2015.rar

上来先 下一步 然后 选择安装目录(非c盘就行!)

 然后下一步安装    安装完成后 打开文件

 在非C盘新建一个工作区,如D盘 下面 (用来存放代码)

 新建一个 hello.asm文件 然后拖到 软件里,然后输入上这串代码:(hello world输出)

;********************************************
;  *程序功能:显示Hello World!                    *
;  *编译器:Masm 5.0,ML6.11都可以          *
;  ********************************************
DATAS  SEGMENT
     STRING  DB  'Hello World!',13,10,'$'
DATAS  ENDS

CODES  SEGMENT
     ASSUME    CS:CODES,DS:DATAS
     
START:
     MOV  AX,DATAS
     MOV  DS,AX
     LEA  DX,STRING
     MOV  AH,9
     INT  21H
   
     MOV  AH,4CH
     INT  21H
CODES  ENDS
    END   START

点击运行就能看到结果了,

 点击调试也是没有问题的。(-t指令可以正常运行)

调整 masm for  winodws  dosbox框大小的方法:

windowresolution=1280x800
output=opengl 

 然后保存重新运行调试就变大了!

2、 做亿点点说明

在搜索配置dosbox环境的时候 出现了几个 名词, masm masm  for  windows  dosbox。给出自己的理解(自己瞎编的)。

 我们都知道c语言的编译运行过程 :  .c 文件 -> gcc 编译器 (以这个为例) 编译运行  -> 在环境中生成exe并运行。

那么 这里的masm 也就类似于gcc   支持 把 .asm  编译链接 

dosbox 类似于一个环境黑框,在这个环境里能够支持dos系统下的debug命令(eg:-d 200 这种命令),也提供了 上面masm 处理过后的东西 的运行环境。

而 masm for windows 就类似于 devc++ 就是一个软件。

masm for windows 2015好多付费的内容,并且示例较少, 最新版本的2020 官网:家民软件

 

2020的安装流程也是一样的

可以看到上面2020的版本给出了很多免费的示例,所以我选择,用2020给出的示例参考(学习),用2015编译运行。

###

有人问为什么不直接在2020里面运行?  这样不是() tuo nasha   fang 那啥?

因为发现下面这个问题 我还不知道怎么解决。(在2020例自己新建的asm文件运行不出结果,只有运行示例才能出结果,而且这个结果框是白色 ?)

失败演示链接:微机原理-mashforwindows2020-失败演示视频-CSDN直播

算了 这段好也不重要,跳过就可以

#######

另外:打开2015的文件位置可以看到,下载masm for windows 时带上了这个 环境dosbox

 打开 运行下使用命令调试下 发现也可以。 (就好像dev内置了 MinGW一样)

那么其实也可以不用下载 masm for windows(类比 dev) ,理论上 我们只需要 用记事本 写asm文件 然后编译器 masm 编译 最后dosbox里运行就可以,根本不需要 masm for windows这个软件。

如果要实现上面的这种效果: 这里就需要  masm 和 dosbox关联下,以方便dosbox找到masm。

3、命令行方式运行汇编:(实验四会用到,终究逃不过)

一、安装DOSBox 和 masm 
1、百度网盘链接,直接下载文件夹里的压缩包就好了,解压到你的文件夹里。

链接:https://pan.baidu/s/1UwSpoh9mU0PtJ00BF63zRA
提取码:hiaj

或者:链接:https://pan.baidu/s/10HUsGq2Va0p_NNaE6z3cKw?pwd=khpl 
提取码:khpl 
--来自百度网盘超级会员V4的分享


2、然后就是这个样子:


3、运行 DOSBox0.74-win32-installer 文件夹中的 exe 文件进行安装。前面一直 Next 就行了,选择安装路径的时候记得选择自己刚刚创建的文件夹哦

4、这就安装好了,可以把那个 DOSBox.exe 创建个快捷方式到桌面上。(发送到桌面快捷方式)

5 接下来解压 编译工具masm 其中zip中下面几个比较重要

  • masm.exe:汇编程序,用于汇编源程序(.asm),得到目标程序(.obj);
  • link.exe:连接程序,用于连接目标程序,得到可执行程序(.exe);
  • debug.exe:调试程序,用于调试可执行程序。

二、配置准备工作

1、汇编编译器masm 中上面解压    拿到的四个exe 和你要编译的 asm文件放在一个目录下:

(提醒一下 asm文件不要中文命名,就先拿 输出helloworld 的举例子)

2、这里我们走简单的办法,(直接配置初始化文件 不在一点点 挂载运行了),想弄清原理就请跳转到  下面  三、怎么用DOXBox运行asm文件

上面那个文件叫:DOSBox 0.74 Options.bat

mount c D:\Masm-workspace   #把存在源码和编译工具的目录 配置成 dosbox中的虚拟c盘根目录 (听不懂就按着配就完了.....)
C:   #转到虚拟的c盘
dir  #列出当前存在的所有文件,实际上我后面注释了这行,谁没事一直看目录下有什么文件?
# (下面的可以不用配,我只是默认每次编译的都是hello.asm文件 每次链接的都是hello.obj 每次执行的都是 hello.exe 并且不存在任何附加文件 )
masm hello.asm
link hello
hello.exe

然后双击 桌面上的 DOSBox 0.74

 

 这里我们发现,我们输了好多回车(不管,想管就看 三、怎样用 DOSBox 运行 asm 文件去弄原理),这里的 masm xxx  link xxx     xxxx.exe 发现都是自动输入上去的 ,对应上上个图的倒数三行。 不配置上面三行就(  masm  hello.asm  回车回车回车  link hello 回车回车回车  hello) 结果一样的。

完美撒花!嘿嘿~!

三、怎样用 DOSBox 运行 asm 文件(该解释下上面为社么那么做了!!!!!)

1、还是四个exe 和你要编译的 asm文件放在一个目录下:
2、打开 DOSBox,首先使用一个命令来把咱们的文件目录作为一个虚拟C盘,你做成d盘也行,做成abcdefg盘都行的~~~~~~~

mount c D:\Masm-workspace

解释一下这个命令,理解了才好记忆:
       => mount:准备、安排的意思;
       => c:表示要虚拟为C盘;
       =>D:\Masm-workspace  被虚拟的文件夹路径(存放asm代码和一系列编译工具的那个)。

3、第二个命令,用来转至我们虚拟的C盘:c:


4、编译 hello.asm 文件:

masm hello.asm
然后会出现三个询问,连续三个回车就行了。

在这之后 你可以用dir命令看一下,当前目录下有没有obj文件,有就对了,没有就换一个文件编译。 

5、链接 hello.obj 文件:

link hello或者 link hello.obj
文件后缀加不加 obj 都行,但是你 可别加 asm ,就出错了,链接当然是链接 object 文件了。还是会出现三个询问,连续回车。(这里名字是你刚才编译的那个名字)

 在这之后 你可以用dir命令看一下,当前目录下有没有exe文件,有就正常,没有就GGGG!。 

6、运行 hello.exe 文件: hello 或者 hello.exe

依然撒花!!~~~~

顺道说一句,debug.exe 也是有用的哦!(上面四个exe文件是不可缺少的,少了可能就不能调试)

4.实验报告

我觉得我写的报告有点垃圾,就不放我自己的了吧。但还是要说明下:正常人的实验二的“累加题目“会出现和老师的结果不一致的问题,看看自己的数据段和代码段是不是离得太近,导致后面键入的程序  覆盖了前面刚刚键入 的数据   。另外下面的链接中 不都是正确答案! 不都是!不都是!

实验1https://max.book118/html/2017/0411/99784703.shtm
实验2https://max.book118/html/2017/0602/111069272.shtm
实验3http://xn--https-rfa//max.book118/html/2018/0704/8101133036001114.shtm
实验4https://wenku.baidu/view/29ed92f44693daef5ef73d4b.html?_wkts_=1670082584532

实验5https://www.docin/p-1084470632.html
实验6https://www.docin/p-2270614783.html

有精力的建议多做两个实验,毕竟6个实验是基本要求,哦对了!  

2020级的4专微机考试题是 10道大题,当时是两个问答题,

一个是8086和80386的区别(也就是你要清楚的知道8086-奔图系列的区别和发展思路,从总线啊 体系结构啊  特点啊方向去答)

另外一个是bios和SRAMxxxx什么东西的区别,忘记了。

其他的题目包括但不限于:

总线状态 (计算题),

内存分段和分页的经典大题,

中断向量表的入口地址,段选择子啊,中断向量描述符啊 什么的

设计一个从线性地址->物理地址的划分,就是让你设计怎么分页,比如页表不能超过xxxK,页目录表不能超过xxxx个

8253 8259 8255是综合在一个大题来考的(真的非常非常难受),建议这一块的熟练程度要高到让人看起来心疼!请注意我没有危言耸听。

最后一个答题是 汇编程序,就是实验题中的 出入月份并显示的那个题目!!!!!!(原题!!!!)个人感觉 最起码的冒泡要会,显示/输入 字符串/字符的INT中断一定要知道(一般不给)

开个玩笑:按照记忆曲线的规律,我能记起这一半的题目已经是正常了,剩下的就看各位的造化了。

姿瓷一下互联网精神好不好的啦!

本文标签: 微机课内接口原理技术