本实验关注的重点是如何显示一个二维的数据,很自然是使用二重循环,汇编二重循环也有一个套路,具体看下面的代码,几乎所有的二重循环都是下面这个套路。值得强调的是,两层循环直接进出一定要注意上下文切换,这里已经体现出一点操作系统指令切换的雏形。

assume cs:codesg, ds:datasgdatasg segmentdb 'welcome to masm!', 0db 00000010bdb 00100100bdb 01110001b
datasg endscodesg segment
start:  mov ax, datasgmov ds,   axmov bx, 0mov si, 0        ;ds:si指向数据mov ax, 0b800hmov es, axmov di, 160*12+40*2  ;es:di指向显存去mov cx, 3
s0: push cxpush sipush dis: xor cx, cxmov cl, ds:[si]jcxz okmov ch, ds:[bx+17]mov es:[di], clmov es:[di+1], chadd si, 1add di, 2jmp sok:  pop dipop sipop cxinc bxadd di, 160loop s0mov ax, 4c00hint 21hcodesg ends
end start

实验结果:

实验9 根据材料编程相关推荐

  1. 汇编语言:汇编程序的hello world程序(实验9根据材料编程)

    实验介绍 学习每一种编程语言,第一个程序一般都是hello world,一般都是往控制台进行输出.但是学习汇编语言,汇编语言王爽这本书学习了一大半才有了往控制台输出内容.这是教材中的实验9 根据材料编 ...

  2. 实验九 根据材料编程

    南京信息工程大学实验报告 实验(实习)名称    根据材料编程    实验(实习)日期    2018年12月11日   得分        指导老师 耿学华 系 计软院 专业 计科 年级 2017级 ...

  3. 【王爽汇编】实验9 根据材料编程

    前言:这是王爽版汇编语言第四版第187页的一道题目,因为我觉得有点难,非常有借鉴意义,所以我打算写一篇博客,顺便把题目再写一遍,这样也许会看的更仔细.我会在题目的中间加上自己的思考和分析,因为对于初学 ...

  4. 实验九 根据材料编程(改变字体颜色)

    编程:在屏幕中间分别显示 绿色.绿底红色.白底蓝色的字符串'welcome to masm!' 一个字符在屏幕上占用两个字节 低地址存放ASCII码,高地址存放字符的属性 偶数地址都是存放字符的ASC ...

  5. 汇编语言:实验10 根据材料编程—3.数值显示,编程,将data段中的数据以十进制形式显示出来

    问题描述 编程,将data段中的数据以十进制的形式显示出来. data segmentdw 123,12666,1,8,3,38 data ends 实验效果 实验要求 子程序描述 名称:dtoc 功 ...

  6. 汇编语言:实验10 根据材料编程—2.解决除法溢出的问题

    问题描述 用div做除法的时候可能产生除法溢出.由于有这样的问题,在进行除法运算的时候要注意除数和被除数的值,比如1000000/10就不能用div指令来计算.那么怎么办?我们用下面的子程序divdw ...

  7. 汇编语言:实验10 根据材料编程—1.显示字符串

    问题描述 显示字符串是现实工作中经常要用到的功能,应该编写一个通用的子程序来实现这个功能. 我们应该提供灵活的调用接口,使调用者可以决定显示的位置(行.列).内容和颜色. 实验效果 将字符串展示到8行 ...

  8. 王爽老师汇编语言第四版:实验九 根据材料编程

    目录 1.首先是编译问题 2.显示缓存区每一行是80个字符也就是160个字节 3.当数据想要写到第二行时  这时si已经向后走了16个位移了所以不能直接+160 应该+160-32 4.视频中教程用一 ...

  9. 汇编语言_实验九_根据材料编程

    四.实验结论 1. 源程序: assume cs:code, ds:data data segment db 12 db 0,0 data ends code segment start: mov a ...

最新文章

  1. MLIR Python绑定
  2. 莫名的_locals属性
  3. C++引用(Reference)
  4. ad13批量安装元件库_ad16如何批量添加封装库?
  5. DDD战略设计相关核心概念的理解
  6. razor java,如何在Razor中声明局部变量?
  7. 一问带你区分清楚Authentication,Authorization以及Cookie、Session、Token
  8. python脚本在linux上运行的两种方式_python脚本当作Linux中的服务启动实现方法
  9. LNMP+FARM+DNS
  10. Lesson 3.1 - Python Core Data Types
  11. linux菜鸟要飞-根目录
  12. Java中处理日期的常用类
  13. dos下\与/有什么区别
  14. 计算机添加桌面小插件,一款实用的Windows小插件 ——桌面日历DesktopCal
  15. 网上体育商城的设计与实现
  16. 实现jul 日志重定向到 slf4j
  17. c语言实现学生档案管理系统
  18. 港科夜闻|香港科技大学举行第六届冠名教授席就职典礼
  19. 谷歌浏览器打印不弹出预览直接打印机打印的方法
  20. elementUI:阻止form的enter(回车键)事件

热门文章

  1. 前端学习(1066):ES6里面的三个注意点1
  2. mybatis学习(52):扩展结果的展现
  3. 如何对linux文件进行编译,linux编译和执行命令都有哪些?该如何实现?
  4. 学计算机后悔转专业,大学转专业容易吗 会后悔吗
  5. javascript网页特效_南通建网站哪些,网页设计维护
  6. springboot指定注解扫描范围
  7. C++ ActiveX开发的问题讨论
  8. 【codeforces 749E】 Inversions After Shuffle
  9. 从字节码看 finally关键字、异常表
  10. 解决 org.apache.hadoop.io.nativeio.NativeIO$POSIX.stat异常