彙編語言編寫十進制數到二進制數的進制轉換並顯示的子程序

不同進制間轉換一直是彙編語言必須要掌握的編程技巧,算法也比較簡單:
例如:當其他進制數轉爲十進制時使用的除十取餘法,壓入棧中,彈出後實現逆序輸出;
當其他進制數轉爲二進制時使用的除二取餘法,壓入棧中,彈出後實現逆序輸出;
進而擴展:當其他進制數轉爲R進制時使用的除R取餘法,壓入棧中,彈出後實現逆序輸出;
下面介紹一種比較簡便的方法,通過移位指令實現的十進制數到二進制數形式的進制轉換程序,
程序使用8086宏彙編MASM5.0編譯運行通過!
源代碼如下:

assume cs:code
code segment
;主程序
start:
mov al,74h
call binary
mov ax,4c00h
int 21h
;子程序
;功能:通過移位和帶進位加法實現的將al中的內容以二進制形式顯示
;入口參數:al
;出口參數:無
binary proc near
push bx
push cx
push dx ;保護現場

mov bl,al
mov cx,8 ;循環8次

s: mov dl,30h
shl bl,1
adc dl,0
mov ah,2 ;調用DOS功能調用,顯示’0’或’1’
int 21h
loop s

pop dx ;恢復現場
pop cx
pop bx
ret
binary endp
code ends
end start

發佈了95 篇原創文章 · 獲贊 36 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章