草庐IT

微机原理与接口技术课内实验-NUAA-Masm for Windows

不买Huracan不改名 2024-06-16 原文

目录

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

2、 做亿点点说明

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

4.实验报告


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

https://sm.myapp.com/original/Office/wasm2015.rar

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

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

 在非C盘新建一个工作区,如D盘 

 新建一个 xxx.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

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

 调试也是没有问题的。

调整 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命令,也提供了 上面masm 处理过后的东西 的运行环境。

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

对于 masm for windows 2012 这个版本 不支持 64电脑( 教室里那个电脑可以 自己的win10 64位操作系统不行)。 2015可以支持 并且很类似于上课看到的那样,但是这个好多付费的内容,并且示例较少, 最新版本的2020 官网:家民软件

 

安装流程也是一样的

可以看到上面给出了很多免费的示例,所以我的办法是,用2020给出的示例参考,用2015编译运行。

这样并不是() tuo nasha   fang 那啥

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

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

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

 打开随便 运行下 发现也可以。

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

这里就需要  masm 和 dosbox关联下,方便dosbox找到masm。

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

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

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


2、然后就是这个样子:


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

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

5 解压 编译工具masm

  • 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文件,有就对了,没有就G!。 

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

依然撒花!!~~~~

顺道说一句,debug.exe 也是有用的哦!(四个文件都有用!)

4.实验报告

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

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

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

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

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

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

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

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

总线状态 (计算题),

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

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

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

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

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

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

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

有关微机原理与接口技术课内实验-NUAA-Masm for Windows的更多相关文章

  1. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  2. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  3. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  4. ruby-on-rails - 用于门户的 Ruby 技术 - 2

    我刚刚看到whitehouse.gov正在使用drupal作为CMS和门户技术。drupal的优点之一似乎是很容易添加插件,而且编程最少,即重新发明轮子最少。这实际上正是Ruby-on-Rails的DRY理念。所以:drupal的缺点是什么?Rails或其他基于Ruby的技术有哪些不符合whitehouse.org(或其他CMS门户)门户技术的资格? 最佳答案 Whatarethedrawbacksofdrupal?对于Ruby和Rails,这确实是一个相当主观的问题。Drupal是一个可靠的内容管理选项,非常适合面向社区的站点。它

  5. iNFTnews | 周杰伦18年前未发布的作品Demo,藏在了区块链技术里 - 2

    当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在

  6. ruby - 使用哪种群发消息技术? - 2

    我感到有点困惑——大约24小时以来,我一直在考虑在我的项目中使用哪种组播技术。基本上,我需要的是:创建组(通过一些后端进程)任意客户端广播消息(1:N,N:N)(可能)直接消息(1:1)(重要)使用我自己的后端(例如,通过某种HTTPAPI)对客户端进行身份验证/授权能够通过后端进程(或服务器插件)踢出特定的客户端这是我要的:Ruby或Haxe中的后端相关流程JS+Haxe(Flash9)中的前端—在浏览器中,因此理想情况下通过80/443进行通信,但不一定。因此,这项技术必须能够在HaxeforFlash中轻松访问,最好是Ruby。我一直在考虑:RabbitMQ(或OpenAMQ)、

  7. ruby-on-rails - 如何在 RubyOnRails 中使用 'acts as nested set' 创建一个可排序的接口(interface) - 2

    我一直在为使用acts_as_list的模型实现一些不错的交互界面,这些界面可以对我的mRails应用程序中的列表进行排序。我有一个排序函数,在每次拖放之后使用sortable_elementscript.aculo.us函数调用并设置每条记录的位置。这是在拖放完成后处理排序的Controller操作示例:defsortparams[:documents].each_with_indexdo|id,index|Document.update_all(['position=?',index+1],['id=?',id])endend现在我正在尝试对嵌套集模型(acts_as_nested

  8. 网络实验之RIPV2协议(一) - 2

    一、RIPV2协议简介  RIP(RoutingInformationProtocol)路由协议是一种相对古老,在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP采用距离向量算法,是一种距离向量协议。RIP-1是有类别路由协议(ClassfulRoutingProtocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(DiscontiguousSubnet)。RIP-2是一种无类别路由协议(ClasslessRoutingProtocol),支持路由标记,在路由策略中可根据路由标记对

  9. 【Unity游戏破解】外挂原理分析 - 2

    文章目录认识unity打包目录结构游戏逆向流程Unity游戏攻击面可被攻击原因mono的打包建议方案锁血飞天无限金币攻击力翻倍以上统称内存挂透视自瞄压枪瞬移内购破解Unity游戏防御开发时注意数据安全接入第三方反作弊系统外挂检测思路狠人自爆实战查看目录结构用il2cppdumper例子2-森林whoishe后记认识unity打包目录结构dll一般很大,因为里面是所有的游戏功能编译成的二进制码游戏逆向流程开发人员代码被编译打包到GameAssembly.dll中使用il2ppDumper工具,并借助游戏名_Data\il2cpp_data\Metadata\global-metadata.dat

  10. 你真正了解什么是接口测试么?接口实战一“篇”入魂 - 2

    最近在工作中,看到一些新手测试同学,对接口测试存在很多疑问,甚至包括一些从事软件测试3,5年的同学,在聊到接口时,也是一知半解;今天借着这个机会,对接口测试做个实战教学,顺便总结一下经验,分享给大家。计划拆分成4个模块跟大家做一个分享,(接口测试、接口基础知识、接口自动化、接口进阶)感兴趣的小伙伴记得关注,希望对你的日常工作和求职面试,带来一些帮助。注:文章较长有5000多字,希望小伙伴们认真看完,当然有些内容对小白同学不是太友好,如果你需要详细了解其中的一些概念或者名词,请在文章之后留言,后续我将针对大家的疑问,整理输出一些大家感兴趣的文章。随着开发模式的迭代更新,前后端分离已不是新的概念,

随机推荐