鱼C论坛

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

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

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

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

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

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

  2. data segment
  3.         db 'Welcome to masm!',0
  4. data ends

  5. stack segment
  6.         dw 8 dup(8)
  7. stack ends


  8. code segment
  9. start:
  10.         mov ax,data
  11.         mov ds,ax
  12.        
  13.         mov ax,stack
  14.         mov ss,ax
  15.         mov sp,16
  16.        
  17.         mov si,0
  18.         mov dh,10
  19.         mov dl,50
  20.         call show_str

  21.         mov ax,4c00h
  22.         int 21h

  23.         ;名称:show_str
  24.         ;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串
  25.         ;参数:(dh)=行号(取值范围0-24),(dl)=列号(取值范围0-79),(cl)=颜色,ds:si指向字符串的首地址
  26.         ;返回无
  27.         show_str:
  28.                 push cx
  29.                 push si
  30.                 push ax
  31.                 push di
  32.                 push es
  33.                
  34.                 mov ax,0b800h
  35.                 mov es,ax
  36.                
  37.                 ;一列占2个字节,求出列
  38.                 mov al,dl
  39.                 mov bl,2
  40.                 mul bl
  41.                        
  42.                 ;列*行=最终的要显示所在空间的物理地址
  43.                 mul dh
  44.                        
  45.                 mov di,ax
  46.                
  47.                 ks:       
  48.                         mov cl,[si]
  49.                         mov ch,0
  50.        
  51.                         jcxz jishu
  52.                        
  53.                         mov es:[di],cl
  54.                         mov byte ptr es:[di+1],02h
  55.                        
  56.                         inc si                ; 下一个字符
  57.                         add di,2        ; 下一个要显示的位置
  58.                        
  59.                         jmp short ks
  60.                
  61.                 jishu:
  62.                         pop es
  63.                         pop di
  64.                         pop ax
  65.                         pop si
  66.                         pop cx
  67.                         ret
  68.                
  69. code ends
  70. end start
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-4 14:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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