汇编语言showStr测试子程序
来源:互联网 发布:轩辕剑符鬼突破数据 编辑:程序博客网 时间:2024/06/06 13:25
王爽《汇编语言》课后练习题
显示字符串子程序
2017.4.23
;name :showStr
;fuction : 在指定的位置,用指定的颜色,显示一个用0结束的字符串
;参数:(dh)=行号(取值范围0-24),(dl)=列号(取值范围0-79), (cl) = 颜色,ds:si指向字符串的首地址
;test Code : 在屏幕的8行3列,用绿色显示data段中的字符串
;eg:->init
; mov dh,8 8行
; mov dl,3 3列
; mov cl,2 字符属性 2->黑底绿色无高亮无闪烁
; mov ax,data
; mov ds,ax 字符串段地址
; mov si,0 字符串起始地址
;=====代码主体=======
assume cs:codesg
stack segment
db 128 dup(?)
stack ends
data segment
db 'Hello World',0
data ends
codesg segment
start:
`mov ax,stack mov ss,ax mov sp,80H mov dh,8 ;8行 mov dl,3 ;3列 mov cl,2 ;字符属性 2->黑底绿色无高亮无闪烁 mov ax,data mov ds,ax ;字符串段地址 mov si,0 ;字符串起始地址 call showStr ;调用显示子程序 mov ax,4c00h int 21h` ;返回Dos
; *********************************************
showStr:
push dx push cx push es push bx push si push di call showStrInit mov dh,cl ;由dx = dh + dl ; dh = 颜色 dl = 字符
showStringMain:
mov cx,0 mov cl,ds:[si] jcxz showStrRet mov dl,cl mov es:[di],dx add di,2 inc si jmp showStringMain
showStrInit:
mov al,160 mov bl,dh mul bl mov di,ax ;得到行数 , 最终用es:di指向显示区域 mov al,2 mov bl,dl mul bl add di,ax mov ax,0b800h mov es,ax ret
showStrRet:
pop di pop si pop bx pop es pop cx pop dx ret
; *********************************************
codesg ends
end start
end
阅读全文
0 0
- 汇编语言showStr测试子程序
- 汇编语言-子程序调用
- 拓展:汇编语言的子程序
- 汇编语言--如何调用子程序
- 汇编语言子程序设计 查找电话号码
- 汇编语言--王爽--实验9 子程序
- 汇编语言:简单的子程序设计
- 汇编语言 递归子程序实现阶乘
- 用汇编语言随机产生字母的子程序
- 8、王爽《汇编语言》笔记_子程序一
- 13、王爽《汇编语言》笔记_子程序二
- 汇编语言子程序调用call和ret
- 汇编语言第6章 宏与子程序
- 汇编语言的16位除法子程序
- 汇编语言(王爽)实验十 编写子程序
- 汇编语言数值显示 的子程序dtoc.asm
- 王爽《汇编语言》实验10:编写子程序show_str
- 汇编语言学习----汇编程序中的子程序设计
- leetcode题解c++ | 25. Reverse Nodes in k-Group
- 【笔记】shiro中的Password加密设置:
- 红黑树(RBTree)的实现
- 字符串的分解问题
- Json进一步应用
- 汇编语言showStr测试子程序
- How to create a link in Linux
- 【BFS瞎搜】九宫重排
- LeetCode刷题(C++)——Verify Preorder Serialization of a Binary Tree(Medium)
- CUBEMX stm32f407 使用(USB虚拟串口)
- B骑士旅行
- 常用网站
- RN 配置的坑2
- 2.NIO入门