微机原理
非 常 道
这个作者很懒,什么都没留下…
展开
-
8086汇编语言微机原理上机大作业(全注释)
花了一天时间,终于算是弄完了,先是完成了各个模块的功能(详见微机原理专栏的其他文章),然后整合在一起,写了一堆子程序和调用模块。程序实现的功能如下:各个功能独立实现后,整合在一起并没有任何难度,不过需要注意的是,在调用子程序的时候,记得保护现场,不然会出现意想不到的错误。此外,当工程量变大后,变量的命名也要格外注意,不同子程序使用的相同功能的标识符或变量,最好起相同的名字,以序号分别。比如功能1的输出提示符为SOUTPUT1,功能2的输出提示符为SOUTPUT2。功能相同的部分要写子程序调用原创 2020-11-18 20:26:56 · 5993 阅读 · 4 评论 -
8086汇编语言实现8253计时器对时且实时定点显示时间(全注释)
作为微机原理终极大作业的一部分,个人感觉这个模块是最难的,花了我一个晚上+一个上午。因为有计时中断,也没办法开调试,Debug难度上了一个新高度,而且有时代码一点没动,运行的结果还不一样,甚至会闪退卡死,就很迷,好在最后还是被我碰出来了。题目要求如下:输入时分秒处理好做,输出也好做,难点在于计时和定点显示,还有返回重新对时。使用8253芯片做计时首先先关闭计时器中断然后设置中断向量,将08H中断服务地址更改为我们自己的代码段INT08H,该代码段是中断处理对计时器分频10ms,设置控制字。原创 2020-11-18 14:28:37 · 7274 阅读 · 2 评论 -
8086汇编语言显示一串字符串中ASCII码最大的一个字符
微机原理大作业的一部分,比较简单,题目描述如下:拿之前写过的代码修改,5分钟搞定,甚至连调试都没调,一次运行就功能正常了。好家伙!代码如下:DATAS SEGMENT SINPUT DB 'Please input a string: $' SOUTPUT DB 'The biggest char is: $' BUF1 DB 20H DB 0 DB 20H DUP(0)DATAS ENDSSTACKS SEGMENT PARA STACK原创 2020-11-17 20:38:34 · 2972 阅读 · 0 评论 -
8086汇编语言将一串字符串内小写字母转换为大写字母,其余字符不变(全注释)
微机原理上机大作业的一部分,题目要求如下:有了前面学习的基础,这次代码复制粘贴 花了20分钟就写完了。DATAS SEGMENT SINPUT DB 'Please input a string: $' SOUTPUT DB 'The changed string is: $' BUF1 DB 20H DB 0 DB 20H DUP(0)DATAS ENDSSTACKS SEGMENT PARA STACK DW 30H DUP(0)STAC原创 2020-11-17 20:20:33 · 7537 阅读 · 5 评论 -
8086汇编语言实现数组冒泡排序(全注释)
微机原理上机第二次作业,任务要求如下:大概的意思是,从键盘输入数组大小和数组里面的数据,首先显示数组数据,然后排个序,排完序之后再显示数组。没听过课,肝了一整天,翻书+网上查资料终于写完了。这里是降序排列,要想做到升序,只需把冒泡排序里面CMP的源操作数和目的操作数换个位置。输入的所有数字都得是0-255范围内的数字,不然程序会出错。注释已经尽量详细了,毕竟就靠着这些学习微机原理了,我期末还不想挂。鲁棒性测试没做,作为初学汇编代码,这只是一个很简单的程序,如有不足之处还请评论指正。废话不多数原创 2020-11-17 19:23:31 · 9654 阅读 · 7 评论 -
微机原理8086汇编语言上机——Masm环境搭建与常用汇编调试指令
学校的微机原理与接口技术课,最近开始 考古 上机实验了。1.弯路为什么不用宇宙最强大的IDEL——Visual Studio呢?在我的Visual Studio专栏中有一篇文章介绍Visual Studio搭建汇编语言环境并使用AsmDude插件实现代码高亮。本地windows调试器,启动!折腾了一下午,原因找到了:8086微机使用的16位系统,而VS环境是32位的,一个32位的数据传给一个应该是16位的数据,当然符号类型冲突。放弃了Visual Studio。也许有人会解决这个问题?2.原创 2020-11-16 20:48:16 · 3072 阅读 · 0 评论