(2011.11.01)汇编_王爽_第09章_学习小结
来源:互联网 发布:淘宝运营投资计划表 编辑:程序博客网 时间:2024/06/05 05:36
(2011.11.01)汇编_王爽_第09章_学习小结
本章内容:
1. 转移指令——同时修改CS和IP的指令的统称。
2. 段内转移——只修改IP
——短转移——IP修改范围为 -128至127.
——近转移——IP修改范围为 -32768 至 32767
3. 段间转移——同时修改CS和IP
4. offset功能是取得标号的偏移地址。
5. jmp无条件转移指令,可以只修改IP,也可以同时修改CS和IP
6. jmp short 标号[IP] jmp near 标号[IP] jmp far 标号[CS:IP] jmp 16位的reg[IP]
7. jmp word ptr 内存单元地址(段内转移) jmp dword ptr 内存单元地址(段间转移)
8. jcxz 标号(如果(cx) = 0, 转移到标号处执行。)
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; 程序名称:实验9_根据材料编程_在屏幕中间显示不同颜色的字符串.asm; 程序功能:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'Welcome to masm' ; 程序材料:; 在内存中,有一个 80 * 25 彩色字符模式显示缓冲区,B8000H - BFFFFH 共 32KB 的空间。; 需记忆:向这个地址空间写入数据,写入的内容将立即出现在显示器上。; 显示器可以显示25行,每行80个字符,每个字符可有256种属性(背景色,前景色,闪烁,高亮等组合信息); 一行共有80个字符,占160个字节。; 一个字符在内存中占两个字节,(偶地址)低位存放字符的ASCII码,(奇地址)高位存放字符的属性。; 例:; 在B8000H至B8F9FH为第一屏(25行,9+F=25-1),其中,偏移地址 000 - 09F 对应显示器上的第一行,(9F = 10 * 16 - 1); 属字节的格式:; 7 6 5 4 3 2 1 0; BL R G B I R G B; 当它们的位数为1的时候会被激活:BL(7):闪烁,(654)背景,I(3)高亮,(210)前景色,R(4,2)红色,G(5,1)绿色,B(6,0)绿色.; 注意:; 闪烁的效果必须在全屏DOS方式下才能看到。 ; 程序分析:; 简单地说,编写该程序的方法就是将字符放到B8000H - BFFFFH的空间就可以了。; 那么,这里可以使用mov 指令,还有loop指令。 assume cs:code, ds:data ; 开始定义数据段,也就是题目要求的字符data segment db 'welcome to masm!'data ends ; 开始定义代码段,并且设定程序执行的入口code segmentstart: mov ax, data ; 找到字符串的起点 mov ds, ax mov al, 8 ; 设定段地址 mov ah, 12 mov es, ax mov bx, 31 ; 设定字符偏移地址的起点,列 add bx, 384 ; 行 mov si, 0 ; 一行有80个字符,要显示的有15个字符 mov di, 0 ; 要将字符放到中间,先设定中点为40,然后向两间展开 ; 也就是说,左边是40 - 7 = 33, 33 - 1 = 31 ; 减1原因,由零开始 mov cx, 15 ; 循环十五次 ; 先将 'welcome to masm!' 这十五个字符放入到屏幕中间putcharin: mov al, ds:[si] ; 放入字符 mov es:[bx+di], al inc di ; 开始设置字体颜色,但由于每个字符串的颜色不同,所以这里需要设置几个循环跳点 cmp si, 7 jae near ptr c7 ; >=7时,跳到C7 c0: mov al, 01000000B ; 绿色 jmp near ptr endloop c7: cmp si, 11 jae near ptr c11 mov al, 00100100B ; 绿底红色 jmp near ptr endloop c11: mov al, 01110001B ; 白底蓝色 endloop: mov es:[bx + di], al inc si inc di loop putcharin mov ax, 4c00h int 21hcode endsend start
- (2011.11.01)汇编_王爽_第09章_学习小结
- (2011.11.09)汇编_王爽_第16章_学习小结
- (2011.11.02)汇编_王爽_第10章_学习小结
- (2011.11.02)汇编_王爽_第11章_学习小结
- (2011.11.03)汇编_王爽_第12章_学习小结
- (2011.11.04) 汇编_王爽_第13章_学习小结
- (2011.11.04)汇编_王爽_第14章_学习小结
- (2011.11.07) 汇编_王爽_第15章_学习小结
- (2011.11.10) 汇编_王爽_第17章_学习小结
- (2011.10.29)汇编_王爽_第08章_学习小结
- (2011.10.26)汇编_王爽_第五章_学习小结
- (2011.10.28)汇编_王爽_第六章_学习小结
- (2011.10.29)汇编_王爽_第七章_学习小结
- (2011.11.12)汇编_王爽_全书_学习小记
- Head First_设计模式_学习笔记_第01章_策略模式
- 程序员面试宝典_第13章_数据结构基础_排序算法小结(1)
- 程序员面试宝典_第13章_数据结构基础_排序算法小结(2)
- 程序员面试宝典_第13章_数据结构基础_排序算法小结(3)
- NOR Flash
- ssh密钥的使用
- 简单购物车的实现
- JSP的开发模式和设计模式(MVC)和实例---注册
- 6.087 Practical Programming in C, lec11
- (2011.11.01)汇编_王爽_第09章_学习小结
- Iterator 和 Generator的学习心得
- ado,net发送邮件
- js手册学习--Form 和 Input 对象
- linux默认进如文本界面设置方法
- 计算机图形学 8连通边界填充算法
- bash 脚本 实现文件的重命名
- 红黑树的各种操作
- RMAN中通过时间点不完全恢复报ORA-01841的解决办法