鱼C论坛

 找回密码
 立即注册
查看: 2803|回复: 0

[学习笔记] 实验九

[复制链接]
发表于 2017-8-20 00:31:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 shuiyu 于 2017-8-20 00:34 编辑

越努力,越幸运。欢迎大家来看我的笔记 小白刚学,不对的请各位大佬指正,谢谢

实验九


这两天被实验九折腾得要命,自己太笨琢磨了两天还是没写出来,还是老老实实看下一讲的讲解吧 以下是我看讲解前的一些思路。

编程:在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串’welcome to masm!’

解:在80*25彩色字符模式下,因为显示器只能显示25行,每行80个字符。

(1)在屏幕中间显示绿色字符串
首先确定位置:题目要求显示在屏幕中间,故我们选在了12行(其实13行也行),偏移6E0~77F对应显示器的第12行;40列为正中间:4E~4F单元对应显示器上的第40列。因为要显示“welcome to masm!”16个字符占32个字节,故要在第32列与47列中输入才能显示在正中间;3E~3F单元对应显示器上的第32列,5C~5D单元对应显示器上的第47列。即要从12行32列 B800:71E(6E0H+3EH=71EH )这个位置开始输入指令,由于我用的是栈,所以入栈的话就要从12行47列B800:73DH(6E0H+5DH=73DH )。

然后确定ASCII码和属性字节:“welcome to masm!”的ASCII分别为:77 65 6C 63 6F 6D 65 20(空格) 74 6F 20 6D 61 73 6D 21(感叹号)
绿色的属性字节为:000000010B也就是02H。(PS:刚刚发现的,如果不输入属性字节的话系统会默认成输入ASCII码时的颜色)

输入指令完成任务:如果我们直接在debug下输入指令的话,由于指令太长debug窗口会自动换行。造成我们要显示的字幕不在同一行上了,就是这样:
1.PNG

所以我们要用汇编语言生成EXE文件解决问题,但是在这期间我又发现了问题(我是准备运用栈);就是我一指定SS和SP为显示缓冲区的地址后,它就直接写到地址里面了,如下图:
2.PNG

但是我琢磨了很久还是解决不了(都两天了 ),索性就不写(毕竟小甲鱼下一讲有讲解,在瞎琢磨真的就是浪费时间得不偿失了 )。


(2)屏幕中间显示绿底红色字符串
位置和ASCII码在(1)中已经确定好了。
绿底红色的属性字节为:00100100B。也就是24H
用汇编语言完成任务:



(3)屏幕中间显示白色蓝底字符串
位置在(1)中已经确定好了。
白色蓝底的属性字节为:01110001B。也就是71H
用汇编语言完成任务:

谢谢小甲鱼带来的视频教程,感谢!!

本节结束,多谢览阅!
越努力,越幸运。谢谢大家来看我的笔记 小白刚学,不对的请各位大佬指教,谢谢

评分

参与人数 1鱼币 +6 收起 理由
小甲鱼 + 6

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-20 07:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表