首页
社区
课程
招聘
[旧帖] [求助]16*16点阵显示汉字的程序,高手帮忙! 0.00雪花
发表于: 2010-5-22 09:34 980

[旧帖] [求助]16*16点阵显示汉字的程序,高手帮忙! 0.00雪花

2010-5-22 09:34
980
显示大字的一个子程序,各位热心大侠帮我看下,为什么是显示一竖线?
  pusha
push   es
push          ds
   
  jmp          next
   
buffer  
dw 0300h,0300h,0300h,0302h,0fffeh,0300h,0300h,0300h,0300h,0380h,0640h,   
  dw 0c20h,1810h,1018h,200eh,0c004h       
next:
  mov ax,12h
  INT 10H
  mov        cx,16 ;存放16个字
  mov        si,offset buffer  
  mov        dx,2 ;汉字左上角开始的Y坐标
   
loop1:
        push          cx
        mov             bx,8000h ;用来与BUFFER里的字进行与操作
        mov            cx,3 ;X坐标
        mov            di,16 ;处理一个dw
        mov        ax,word ptr ds:[si]
loop2:
        push        ax
        push          bx
        test                ax,bx   ;对ax的各个位测试,为1时画点,否则下一步
        jz               next_dot
        mov               bh,0      ;画点
        mov              ah,0ch
        mov               al,0fh
        int              10h
next_dot:
        pop        bx      
        add        cx,1      ;列加1
        shr        bx,1      ;用于测试的BX右移一位
        pop        ax
        dec        di           ;一个dw的16位减1
        jz        next_2
        loop        loop2
next_2:
        add        dx,1         ;行加1
        add        si,2           ;处理下一个dw
        pop        cx
        dec        cx
        jz        exit
        loop        loop1

exit:       
pop        ds
pop        es
popa
ret

后来我又把程序的buffer改为
buffer dw 0ffffh
按照我的意思是画一横线的,可是只画出一个点来。为什么??急求!
还有这个需要给分吗?刚来不太清楚,如果需要的,下次一定补回!见谅

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//