1. 程式人生 > >組合語言: 試編寫一段程式,從鍵盤接收一個 0-65535 間的十進位制無符號數,並在終端上顯示與 它等值的二進位制數。

組合語言: 試編寫一段程式,從鍵盤接收一個 0-65535 間的十進位制無符號數,並在終端上顯示與 它等值的二進位制數。

**
更多習題答案見

**

試編寫一段程式,從鍵盤接收一個 0-65535 間的十進位制無符號數,並在終端上顯示與 它等值的二進位制數。
2017年6月2日15:57:50

data segment
meg db 0dh,0ah,' bad number !','$'
data ends

stack segment stack
 dw 20h dup(?) 
top label word
stack ends

code segment
    assume cs:code,ds:data,ss:stack
main proc far 

    mov ax,data
mov ds,ax mov ax,stack mov ss,ax lea sp,top mov cx,5 ;max number is 65535 xor bx,bx l1: mov ah,01h int 21h cmp al,0dh je input and ax,1111b;輸入的是ASC碼值 轉換為 數值 xchg ax,bx mov si,10 mul si jc eror add bx,ax jc eror loop l1 input: mov dl,0
ah mov ah,02h int 21h mov cx,16 l2: rol bx,1 mov dl,bl and dl,1 add dl,30h mov ah,02h int 21h loop l2 jmp exit eror: lea dx,meg mov ah,09h int 21h exit: mov ah,4ch int 21h main endp code ends end main