最近开始上微机原理课,写了一些小规模的程序,均调试通过。算法非常简单,供新手学习!
PUBLIC printDec,getsDec,showBuff,space,enter,getsDec2,printDec2,printBin,printHex
_cod_mine segment
assume cs:_cod_mine
;.................................................
;1、过程名:printDec
;入口参数:BX
;功能:将BX值以十进制形式输出。
;出口参数:无。
;8086模式,16bit realmode
;.................................................
printDec PROC far
pushf
push ax
push bx
push dx
push cx
mov ax,bx
mov bx,10
xor cx,cx
lop10: xor dx,dx
div bx
add dx,30H
push dx
inc cx
cmp ax,0
jz lop11
jmp lop10
lop11: mov ah,2
pop dx
int 21h
loop lop11
Quit10: pop cx
pop dx
pop bx
pop ax
popf
ret
printDec endp
;.................子过程结束.....................
;.................................................
;2、子过程名:getsDec
;功能:输入无符号数,按回车结束,并保存在Bx中,无回显。
;入口:无,
;出口:BX
;8086,16bit real mode
;................................................
getsDec PROC far
pushf
push ax
push dx
xor dx,dx
lop20: mov ah,8
int 21h
cmp al,0dh
jz quit20
sub al,30h
push ax
mov bx,10
mov ax,dx
mul bx
mov dx,ax
pop ax
xor ah,ah
add dx,ax
jmp lop20
quit20: mov bx,dx
pop dx
pop ax
popf
ret
getsDec endp
;.................子过程结束.....................
;.................................................
;3、子过程名:getsDec2
;功能:输入带符号数,按回车结束,并保存在Bx中,无回显。
;入口:无,
;出口:BX
;8086,16bit real mode
;................................................
getsDec2 PROC far
pushf
push ax
push dx
push cx
xor dx,dx
xor cx,cx
lop30: mov ah,8
int 21h
cmp al,0dh
jz quit31
cmp al,2dH
jz s1
sub al,30h
push ax
mov bx,10
mov ax,dx
mul bx
mov dx,ax
pop ax
xor ah,ah
add dx,ax
jmp lop30
s1: mov cx,1
jmp lop30
quit31: mov bx,dx
cmp cx,1
jz s2
jmp quit30
s2: neg bx
jmp quit30
quit30: pop cx
pop dx
pop ax
popf
ret
getsDec2 endp
;.................子过程结束.....................
;.................................................
;4、过程名:printDec2
;入口参数:BX
;功能:将BX值以带符号十进制形式输出。
;出口参数:无。
;8086模式,16bit realmode
;.................................................
printDec2 PROC far
pushf
push ax
push bx
push dx
push cx
push si
mov ax,bx
mov bx,10
xor cx,cx
xor si,si
cmp ax,0
jge lop40
mov si,1
neg ax
lop40: xor dx,dx
div bx
add dx,30H
push dx
inc cx
cmp ax,0
jnz lop40
lop41: cmp si,1
jnz sss
mov ax,2dh
push ax
inc cx
sss: mov ah,2
pop dx
int 21h
loop sss
Quit40: pop si
pop cx
pop dx
pop bx
pop ax
popf
ret
printDec2 endp
;.................子过程结束.....................
;.................................................
;5、过程名:printBin
;入口参数:BX
;功能:将BX值以二进制形式输出。