正文

汇编程序设计2006-11-23 17:27:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/hammers/20675.html

分享到:

从键盘输入一个八位二进制数,显示其对应的无符号与带符号十进制

 

程序: 

datasegment   segment

array     db  8 dup(0)
ssign     db  'sign data','$'
uunsign   db  'unsign data','$'
datasegment   ends

codesegment   segment
 
       assume   ds:datasegment,cs:codesegment
 start:
       mov  ax,datasegment
       mov  ds,ax
       mov  si,0
       mov  cx,8
 rep:  mov ah,1
       int 21h
       sub al,30h
       mov array[si],al
       inc si
       loop rep
       mov di,7
       mov bl,1
       mov cx,8
       mov dx,0
unsign:mov al,array[di]
       mul bl
       dec di
       add dx,ax
       mov al,bl
       mov bl,2
       mul bl
       mov bx,ax
       mov ax,0
       loop unsign
       mov bx,dx
       lea dx,uunsign
       mov ah,9
       int 21h
       mov dl,':'
       mov ah,2
       int 21h
       call progdec
       mov al,array[0]
       cmp al,1
       jne  next
       mov  cx,256
       sub  cx,bx
       mov  bx,cx
       lea  dx,ssign
       mov  ah,9
       int 21h
       mov dl,':'
       mov ah,2
       int 21h
       mov dl,'-'
       mov ah,2
       int 21h
       call  progdec
       jmp done
next:  lea  dx,ssign
       mov  ah,9
       int 21h
       mov dl,':'
       mov ah,2
       int 21h
       call  progdec
       jmp done
     
 done: mov ah,4ch
      int 21h
     
 progdec  proc
    push ax
 push dx
 push bx
 
 mov dl,100
 mov ax,bx
 div dl
 cmp al,0
 jne  hundred
    mov ax,bx
    mov dl,10
    div dl
    cmp al,0
    jne  ten
    mov dl,bl
    add dl,30h
    mov ah,2
    int 21h
    jmp exit
   
ten:
   mov dl,al
   add dl,30h
   mov bx,ax
   mov ah,2
   int 21h
   mov dl,bh
   add dl,30h
   mov ah,2
   int 21h
   jmp exit
  
  
   
hundred:
     mov dl,al
     mov bx,ax
     add dl,30h
     mov ah,2
     int 21h
     mov ah,bh
     mov al,ah
     mov ah,0
     mov dl,10
     div dl
     mov dl,al
     add dl,30h
     mov bx,ax
     mov ah,2
     int 21h
     mov dl,bh
     add dl,30h
     mov ah,2
     int 21h
     jmp exit
exit:
    mov dl,' '
    mov ah,2
    int 21h
     pop bx
     pop dx
     pop ax
     ret

progdec endp

     

codesegment  ends
      end start
      

      

 

 

阅读(2575) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册