;输入四个字符,回车换行后显示与它等值的二进制数. data segment h1 db 16 dup(?) data ends code segment stack segment stack db 100 dup(?) stack ends assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax lea si,h1 mov cx,4 l1: mov ah,1 int 21h cmp al,30h jb exit ;小于输入的字符0退出 cmp al,39h jbe j1 ;小于等于输入的字符9跳转 cmp al,41h jb exit ;小于输入的字符A退出 cmp al,66h ja exit ;大于输入的字符f退出 cmp al,61h jae x1 ;大于等于输入字符a跳转 cmp al,46h ja exit ;大于输入的字符F退出 sub al,37h ;41h-0ah=37h jmp j2 x1: sub al,57h ;61h-0ah=57h jmp j2 j1: sub al,30h j2: mov di,4 j3: cbw ;将al转换为ax mov bl,2 div bl mov [si],ah ;将(余数)二进制数放入h1开始单元 inc si dec di cmp di,0 jnz j3 loop l1 ;******************************* mov dl,'H' mov ah,2 int 21h mov dl,'=' mov ah,2 int 21h ;******************************* lea si,h1 mov cx,4 l3: mov di,4 mov bx,3 l4: mov dl,[si+bx] add dl,30h mov ah,2 int 21h dec bx dec di cmp di,0 jnz l4 add si,4 loop l3 ;___________________ mov dl,'B' mov ah,2 int 21h exit: mov ah,4ch int 21h code ends end start