. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->INT指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验13 (3)的改进使字符串有颜色属性  [已解决] 回复[ 2次 ]   点击[ 583次 ]  
q470393267
[帖 主]   [ 发表时间:2009-04-18 13:11 ]   [引用]   [回复]   [ top ] 
荣誉值:18
信誉值:0
注册日期:2009-04-04 22:58
调试结果:http://www.asmedu.net/blog/user/bigimg.jsp?neighborId=20202&pic=post_1240031404203.jpg
assume cs:code
code segment
s1:      db 'Good,better,best,'
s2:      db 'Never let it rest,'
s3:      db 'Till good is better,'
s4:      db 'And better,best.'
s:       dw offset s2-offset s1,offset s3-offset s2,offset s4-offset s3,offset s-offset s4 ;存放每段字符的长度
row:     db 2,4,6,8 
r:       db 0                  ;存放列号

start:   mov ax,cs
         mov ds,ax
         mov bp,offset s1           ;取第一个字符的内存地址
         mov di,offset s            ;取每段字符的长度的内存地址
         mov si,offset row          ;作为显存中行指针的内存地址
         mov cx,4
ok:      push cx
         mov byte ptr ds:[si+4],10  
         mov cx,[di]                ;所写字符串的长度
l:       push cx               
         mov bh,0                   ;置光标
         mov dh,[si]                ;光标的行号
         mov dl,byte ptr ds:[si+4]  ;光标的列号
         mov ah,2
         int 10h 
  
         mov ah,9                   ;在光标处写字符
         mov al,ds:[bp]             ;字符
         mov bl,4ah                 ;字符颜色属性(红底高亮绿色)
         mov cx,1                   ;重复次数
         inc byte ptr ds:[si+4]     ;光标的列号加1
         int 10h
         inc bp                     ;取下一个字符

         pop cx
         loop l                     ;cx!=0显示下一个字符

         pop cx
         inc si                     ;换光标的行号
         add di,2                   ;换所写字符串的长度
         loop ok                   
         mov ax,4c00h
         int 21h
code ends
end start
q470393267
[第1楼]   [ 回复时间:2009-04-26 19:47 ]   [引用]   [回复]   [ top ] 
荣誉值:18
信誉值:0
注册日期:2009-04-04 22:58
收摊~
q470393267
[第2楼]   [ 回复时间:2009-04-26 19:47 ]   [引用]   [回复]   [ top ] 
荣誉值:18
信誉值:0
注册日期:2009-04-04 22:58
此贴由 贴主 于 [ 2009-04-26 19:47 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved