汇编语言(二十九)之数值的二进制和十进制
生活随笔
收集整理的這篇文章主要介紹了
汇编语言(二十九)之数值的二进制和十进制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個數,輸出該數的二進制和十進制數
程序運行:
?
代碼:
datas segmentVAL1 dw 156datas endsstacks segment stackdb 100h dup(?)stacks endscodes segmentassume cs:codes,ds:datas,ss:stacks BANDO proc far start:push dsmov ax,0hpush axmov ax,datas ;初始化dsmov ds,axpush VAL1call PAIRSretBANDO endpPAIRS proc near mov bp,spadd bp,2mov ax,[bp]call OUTBIN ;輸出二進制數call OUTOCT ;輸出十進制數ret 2PAIRS endpcodes endscodes1 segmentassume cs:codes1,ds:datas,ss:stacksOUTBIN proc far uses ax bx cxmov bx,2 ;除數mov cx,0 ;計數器,記錄數的位數bin:xor dx,dx div bx push dx ;保存余數inc cx cmp ax,0h ;判斷被除數是否為0jnz bin ;若不為0,則循環繼續bin1:pop dxadd dl,30h mov ah,2 ;輸出各位數字 int 21h loop bin1 push ds ;輸出8個空格push cs pop ds lea dx,spacemov ah,9int 21h pop ds retspace db ' $' OUTBIN endpOUTOCT proc far uses ax bx cx dx mov bx,8 ;除數mov cx,0 ;計數器,記錄數的位數oct:xor dx,dx div bx push dx ;保存余數inc cx cmp ax,0h ;判斷被除數是否為0jnz oct ;若不為0,則循環繼續oct1:pop dxadd dl,30h ;輸出各位數字 mov ah,2 int 21h loop oct1 ;輸出換行call next_line retOUTOCT endpnext_line proc far uses ax dxmov dl,0dhmov ah,2int 21hmov dl,0ahmov ah,2int 21h next_line endp codes1 endsend BANDO?
總結
以上是生活随笔為你收集整理的汇编语言(二十九)之数值的二进制和十进制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言(二十八)之统计单词
- 下一篇: 汇编语言(三十)之多模块求和