#include <stdio.h>
#define count 16 /*显示二进制的位数*/
extern dip(int,int);
extern check(int);
extern wait(void);
int main()
{
int num;
char ch;
printf("input a num>>");
scanf("%d",&num);
printf("result:check(%d)=%d/n",num,check(num));
printf("the bin code is:");
disp(num,count);
printf("/nPress any key to coutine.../n");
wait();
}
//汇编源代码
.model small
.stack
.data
.code
dispchar macro mes
push ax
push dx
mov ah,2h
mov dl,mes
int 21h
pop dx
pop ax
endm ;宏定义,显示一字符
public _check
_check proc
push bp
mov bp,sp
mov ax,[bp+4]
test al,0ffh
jp retl
mov cl,1
nextc: test ah,0ffh
jp reth
mov ch,1
jmp stop
retl: mov cl,0
jmp nextc
reth: mov ch,0
stop: xor ch,cl
mov ah,0 ;ax中存返回值
mov al,ch
pop bp
ret
_check endp
public _disp
_disp proc near
push bp
mov bp,sp
mov ax,[bp+4]
mov cx,[bp+6]
add cx,0 ;避免cx为零
jz done
lop: mov bl,0
shl ax,1
adc bl,'0'
dispchar bl
loop lop
done:
dispchar 0ah
dispchar 0dh
pop bp
ret
_disp endp
;等待键盘输入函数
public _wait
_wait proc
mov ah,1h
int 21h
ret
_wait endp
end