首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

见见这个程序

2013-01-02 
看看这个程序键盘输入十进制数输出二进制 data segment a dw 0 input db please input the 10 number:$

看看这个程序
键盘输入十进制数输出二进制 

data segment
 a dw 0
 input db 'please input the 10 number:$'
 ero db 'error!please input again!$'
 data ends
 cod segment
 assume cs:cod,ds:data
 start:mov ax,data
       mov ds,ax
       call receive
       call enter
       call disp
       mov ah,4ch
       int 21h
 receive proc
        mov bx,0
        mov dx,offset input
        mov ah,9
        int 21h
      mov bx,0
   next: mov ah,1
         int 21h
         cmp al,0dh
         jz return
         cmp al,30h
         jb err
         cmp al,3ah
         jb num
         
        jmp err
  num:   sub al,30h
         jmp save
  
        err: call enter
           mov dx,offset ero
           mov ah,9
           int 21h
           jmp next
       save:mov cl,3
            mov a,0
           mov a,bx
           shl bx,cl
           mov cl,1
           shl a ,cl

           adc bx,a
           add bx,ax
           
           
           
                     
           jmp  next
       return: ret
       receive endp
       enter proc
        mov ah,2
        mov dl,0dh
        int 21h
        mov dl,0ah
        int 21h
        ret


        enter endp
        disp proc
        mov cx,16
        rotate:shl bx,1
              jc disp_1
              mov dl,30h
              jmp disp_bit
           disp_1:mov dl,31h
           disp_bit:mov ah,2
           int 21h
           loop rotate
           mov ah,2
           mov dl,'B'
           INT 21H
           ret
           disp endp
           cod ends
           end start
        

[解决办法]
data segment
 a dw 0
 input db 'please input the 10 number:$'
 ero db 'error!please input again!$'
 data ends
 cod segment
 assume cs:cod,ds:data
 start:mov ax,data
       mov ds,ax
       call receive
       call enter
       call disp
       mov ah,4ch
       int 21h
 receive proc
        mov bx,0
        mov dx,offset input
        mov ah,9
        int 21h
      mov bx,0
   next: mov ah,1
         int 21h
         cmp al,0dh
         jz return
         cmp al,30h
         jb err
         cmp al,3ah
         jb num
         
        jmp err
  num:   sub al,30h
         jmp save
  
        err: call enter
           mov dx,offset ero
           mov ah,9
           int 21h
           jmp next
       save:mov cl,3


            mov a,0
           mov a,bx
           shl bx,cl
           mov cl,1
           shl a ,cl

           adc bx,a
           add bl,al
           
           
           
                     
           jmp  next
       return: ret
       receive endp
       enter proc
        mov ah,2
        mov dl,0dh
        int 21h
        mov dl,0ah
        int 21h
        ret
        enter endp
        disp proc
        mov cx,16
        rotate:shl bx,1
              jc disp_1
              mov dl,30h
              jmp disp_bit
           disp_1:mov dl,31h
           disp_bit:mov ah,2
           int 21h
           loop rotate
           mov ah,2
           mov dl,'B'
           INT 21H
           ret
           disp endp
           cod ends
           end start
        
行了

热点排行