汇编网首页登录博客注册
huang425618的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2010-11-01 13:06] 检测10.3

图片载入中
assume cs:code
 data segment
  db 10 dup (0)
 data ends
 code segment
  start:mov ax,12666
        mov bx,data
        mov ds,ax
        mov si,0
        call dtoc

        mov dh,8
        mov dl,3
        mov cl,2
        call show_str

        mov ax,4c00h
        int 21h
   dtoc:inc si   为什么要让si加1呢?这是为了第二个子程序
     s1:mov bl,10  的jcxz的使用
        mov bh,0
        mov dx,0
        div bx   除法 计算12666除10
        mov [si],dl  余数进[si]
        mov bh,30h    
        add [si],bh  加上30h,变成Ascii码
        mov cl,al   
        mov ch,0
        inc si   使用的jcxz指令
        jcxz cd
        jmp short s1
     cd:ret
show_str:mov ax,0b800h
         mov es,ax
         mov di,0a0h   设置的显示区
         mov ax,di    
         mul dh     计算显示行
         mov di,ax   
         mov ax,0
         mov al,2
         mul dl     计算显示列
         sub ax,2    实际的列
         add di,ax    行加列 开始显示区
         mov ah,cl    颜色
       s:mov al,[si]   [si]是ASCII码
         mov es:[di],ax  颜色和ASCII码进入显示区 
         dec si      si减量 
         add di,2        显示区增量
         mov cl,[si]   第一个子程序里si加了1                      mov ch,0     
         jcxz ok  
         jmp short s
      ok:ret


code ends
end start
 第一个子程序里si是到5,后面是0,[si]第一个也是0,这样就可以方便的使用jcxz指令的使用了.
评论次数(0)  |  浏览次数(467)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码