鱼C论坛

 找回密码
 立即注册
查看: 1572|回复: 1

[技术交流] 在指定的位置,用指定的颜色,显示一个用0结束的字符串

[复制链接]
发表于 2014-5-15 21:55:52 | 显示全部楼层 |阅读模式

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

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

x
assume cs:code,ds:data,ss:stack

data segment
        db 'Welcome to masm!',0
data ends

stack segment
        dw 8 dup(8)
stack ends


code segment
start:
        mov ax,data
        mov ds,ax
        
        mov ax,stack
        mov ss,ax
        mov sp,16
        
        mov si,0
        mov dh,10
        mov dl,50
        call show_str

        mov ax,4c00h
        int 21h

        ;名称:show_str
        ;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串
        ;参数:(dh)=行号(取值范围0-24),(dl)=列号(取值范围0-79),(cl)=颜色,ds:si指向字符串的首地址
        ;返回无
        show_str:
                push cx
                push si
                push ax
                push di
                push es
                
                mov ax,0b800h
                mov es,ax
                
                ;一列占2个字节,求出列
                mov al,dl
                mov bl,2
                mul bl
                        
                ;列*行=最终的要显示所在空间的物理地址
                mul dh
                        
                mov di,ax
                
                ks:        
                        mov cl,[si]
                        mov ch,0
        
                        jcxz jishu
                        
                        mov es:[di],cl
                        mov byte ptr es:[di+1],02h
                        
                        inc si                ; 下一个字符
                        add di,2        ; 下一个要显示的位置
                        
                        jmp short ks
                
                jishu:
                        pop es
                        pop di
                        pop ax
                        pop si
                        pop cx
                        ret
                
code ends
end start

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

使用道具 举报

发表于 2014-5-17 18:37:39 | 显示全部楼层
孩子奉劝你一句这么简单的 的问题还拿出来问。。你还是回去多看看书在来吧。:titter::titter::titter::titter::titter::titter::titter:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-1 00:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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