王爽《汇编语言》实验10.1——显示字符串
来源:互联网 发布:萨德部署完成 知乎 编辑:程序博客网 时间:2024/05/17 22:13
;====================================================================
;子程序SHOW_STR功能;在指定的位置,用指定的颜色,显示一个用0结尾的字符串。
;====================================================================
ASSUMECS:CODE,DS:DATA
DATASEGMENT
DB'Welcome to masm!',0
DATAENDS
CODESEGMENT
START:
MOVDH,8 ;(DH)=行号(0~24)
MOVDL,3 ;(DL)=列号(0~79)
MOVCL,2 ;(CL)=颜色
MOVAX,DATA ;初始化DS
MOVDS,AX
MOVSI,0 ;初始化SI,DS:SI指向字符串的首地址
CALL SHOW_STR ;调用子程序
MOVAX,4C00H
INT21H
;-----------------------------------------------------------------------
;功能:在指定的位置,用指定的颜色,显示一个用0结尾的字符串。
;参数:(DH)=行号(0~24),(DL)=列号(0~79),(CL)=颜色,DS:SI指向字符串的首地址。
;返回:无
SHOW_STR:
PUSHAX ;保护现场
PUSHES
PUSHDX
PUSHDI
PUSHSI
MOVAX,0B800H ;显示缓冲区段地址
MOVES,AX ;(ES)=显示缓冲区段地址
MOVAL,0A0H ;以下计算初始字符的偏移地址
MULDH ;行数×0A0H(160个字节)
MOVDI,AX ;转移到DI中
MOVAL,2 ;显示缓冲区中一个字符占两个字节空间
MULDL ;2×列号
ADDDI,AX ;获得初始字符的偏移地址
S:
MOVAX,DS:[SI] ;输出字符到显示缓冲区
MOVES:[DI],AX
INCDI ;准备写入颜色信息
MOVES:[DI],CL ;写入颜色信息
INCSI ;准备输出下一个字符
PUSHCX ;保存颜色=(CL)
MOVCX,DS:[SI] ;(CX)=下一个字符
MOVCH,0 ;!!!若DS:[SI]的低位字节为零,但其高位字节不为零,
;!!!则程序不能如期望的那样跳转到END_SHOW
JCXZ END_SHOW ;不为零则继续输出,为零则结束子程序
POPCX ;恢复颜色=(CL)
INCDI ;准备写入下一个字符
JMP S ;输出下一个字符
END_SHOW:
POPCX ;!!!如果(CX)≠0,就会跳转到这里,此时(CX)在栈中还没有弹出
;!!!如果不弹出就会引发错误
POPSI ;恢复现场
POPDI
POPDX
POPES
POPAX
RET
;------------------------------------------------------------------------
CODEENDS
END START
- 王爽《汇编语言》实验10.1——显示字符串
- 汇编语言 实验10.1 显示字符串
- 《汇编语言》王爽 --实验十 显示字符串
- 王爽 汇编语言 实验十 1、显示字符串
- 王爽《汇编语言》实验10.3——数值显示
- 1.显示字符串-汇编语言(王爽)-实验10 编写子程序
- 汇编语言子函数——显示字符串
- 《汇编语言》王爽——实验九
- 王爽《汇编语言》实验9:显示字符 解答
- 汇编语言 王爽 实验十 数值显示
- 王爽 汇编语言 实验十 2、数值显示
- 王爽 汇编语言 实验9:显示解答
- 汇编语言 第三版 王爽 实验10-1 编写子程序 之 显示字符串
- 汇编语言 第三版 王爽 实验10 显示字符串 show_str 独立完成
- 汇编语言 实验10.3 数值显示
- 王爽《汇编语言》第十四章实验——访问CMOS RAM
- 王爽《汇编语言》实验9——根据材料编程
- 王爽《汇编语言》实验11——编写子程序
- php实现双向队列
- android工程师面试人资问题
- codeforces 364 div2 D As Fast As Possible
- 《Git和SVN之间的五个基本区别》
- UVA 11426GCD - Extreme (II)
- 王爽《汇编语言》实验10.1——显示字符串
- linux学习路线
- 一个java文件夹比较的小程序
- HDU.5592 ZYB's Premutation(线段树求第k大)
- UVALive 7270 (hihoCoder 1258) Osu! Master
- 欢迎使用CSDN-markdown编辑器
- 套接字结构和API
- 网易 Fibonacci数列
- scrollView实用技巧