• 显示字符串的子函数


    ;-----------------------------------------------------------------------
    ; 显示字符串的子函数——

    ;-----------------------------------------------------------------------
    assume cs:code,ds:data
    data segment
            db 'Just Call Sub show_str!',0
    data ends

    code segment

    start:

            mov dh,1              ;dh装行号(范围:1--25)
            mov dl,1              ;dl装列号(范围:1--80)[注:每超过80等于行号自动加1]
            mov cl,0ah            ;cl中存放颜色属性(0ah为绿色高亮)
            mov ax,data
            mov ds,ax
            mov si,0
           
            call show_str

            ;程序暂停,等待输入
            MOV AH,01H
            INT 21H

            mov ax,4c00h
            int 21h

           
    ;功能:显示字符串的子程序
    ;参数:(ds)字符串首地址 (si)欲显示字符串的开始 (dl)屏幕X坐标 (dh)屏幕Y坐标 (cl)颜色
    ;返回:无
    show_str:  
            push cx
            push si
            push ax
            push dx
            push bx
            push es
            push di         ;子程序一共使用了七个寄存器
           
            mov al,0A0h
            dec dh          ;行号在显存中下标从0开始,所以减1
            mul dh
            mov bx,ax
            mov al,2
            mul dl
            sub ax,2       ;列号在显存中下标从0开始,又因为偶字节存放字符,所以减2
            add bx,ax      ;此时bx中存放的是行与列号的偏移地址
            mov ax,0B800h
            mov es,ax      ;es中存放的是显存的第0页(共0--7页)的起始的段地址
            mov di,0
            mov al,cl
            mov ch,0

    s:      mov cl,ds:[si]
            jcxz ok
            mov es:[bx+di],cl       ;偶地址存放字符
            mov es:[bx+di+1],al     ;奇地址存放字符的颜色属性
            inc si
            add di,2
            jmp short s

    ok:  

            pop di
            pop es
            pop bx
            pop dx
            pop ax
            pop si
            pop cx
            ret    ;显示字符串的子程序[定义结束]

    code ends

    end start

  • 相关阅读:
    Javascript异步与同步问题
    promise解决异步问题:.then和async_await的渊源
    vue 爬坑之路----移动端适配rem单位
    vue 爬坑之路---can't resolve 'sass-loader'
    vue-cli新建vue项目
    sublimeT3编译sass.为css到指定的路径。
    禁止滚动条滚动
    让本地的静态html页面在node上跑起来
    地址三联动,简明实现
    关于数组去重
  • 原文地址:https://www.cnblogs.com/ahuo/p/1804433.html
Copyright © 2020-2023  润新知