給定乙個數,輸出該數的二進位制和十進位制數
程式執行:
mov ax,datas ;初始化ds
mov ds,ax
push val1
call pairs
retbando endp
pairs proc near
mov bp,sp
add bp,2
mov ax,[bp]
call outbin ;輸出二進位制數
call outoct ;輸出十進位制數
ret 2
pairs endp
codes ends
codes1 segment
assume cs:codes1,ds:datas,ss:stacks
outbin proc far uses ax bx cx
mov bx,2 ;除數
mov cx,0 ;計數器,記錄數的位數
bin:
xor dx,dx
div bx
push dx ;儲存餘數
inc cx
cmp ax,0h ;判斷被除數是否為0
jnz bin ;若不為0,則迴圈繼續
bin1:
pop dx
add dl,30h
mov ah,2 ;輸出各位數字
int 21h
loop bin1
push ds ;輸出8個空格
push cs
pop ds
lea dx,space
mov ah,9
int 21h
pop ds
retspace db ' $'
outbin endp
outoct 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 ;判斷被除數是否為0
jnz oct ;若不為0,則迴圈繼續
oct1:
pop dx
add dl,30h ;輸出各位數字
mov ah,2
int 21h
loop oct1
;輸出換行
call next_line
retoutoct endp
next_line proc far uses ax dx
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
next_line endp
codes1 ends
end bando
組合語言 簡單的16位二進位制相加程式
這可以說是第乙個我自己寫的匯程式設計序,雖然很短。功能很簡單,實現兩個16位二進位制數相加即可。下面是實現功能的相應 dseg segment data 1 dw data 2 dw dseg ends sseg segment stack top ptr db 20 dup 0 sseg ends...
80x86組合語言程式設計 二進位制輸入 十進位制輸出
程式設計實現鍵盤輸入16位二進位制數,轉換成等值十進位制數顯示。程式執行後,要求操作員鍵入16位二進位制數,然後程式立即進行轉換,顯示出等值的十進位制數。對於非法鍵入不受理,不回顯,也不顯示錯誤資訊。顯示格式示範如下 000010011101011b 1259d 做而論道編寫的程式如下 data s...
統計二進位制中1的個數(彙編)
data segment str db the result is data ends code segment assume cs code,ds data start mov ax,data mov ds,ax mov dx,offset str mov ah,09h 輸出字串的功能,但是使用前...