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

我的博客

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

[2010-08-21 22:28] 10.3

;*****代码还不是完善,需要改进****************************

assume cs:code
data segment
        db 10 dup (0)
data ends

code segment
start:  mov ax,12666
        mov bx,data
        mov ds,bx

        mov si,0
        call dtoc    

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

        mov ax,4c00h
        int 21h

dtoc:        push si
        mov bx,0ah
                
  s1:        mov cx,ax; 当AX的值小于BX时就要跳转,
                  ; 这里如果AX=22666 输出的就是022666了
           mov dx,0
          div bx        
        mov bp,dx
        add bp,30h                 
        push bp
        inc si                
        jcxz s2        
        loop s1

   s2:         mov cx,si
           sub si,si

   s3:        pop bp
        mov dx,bp
        mov [si],dl
        inc si
        loop s3
        pop si
        ret                
        
        
        

show_str:       push dx
                push cx                              
                mov ax,0b800h
                mov es,ax
                mov ax,0a0h
                mul dh
                mov bx,ax
                mov ax,2
                mul dl
                sub ax,1
                add bx,ax
                mov al,cl
                mov di,0
                mov cx,10h
       s:       mov ah,ds:[si]                
                mov es:[bx+di],ax
                inc si
                add di,2
                loop s
                pop cx
                pop dx
                
                
                ret        
code ends
end start
评论次数(0)  |  浏览次数(397)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码