gc db 18H,31H,05H,06H,09H,0AH,0CH,11H,12H,14H;定義格雷碼表
result db ?,?,"$";存放轉換後的格雷碼
data ends
code segment
assume ds:data,cs:code
start:mov ax,data
mov ds,ax
lea bx,gc
next:mov ah,1;從鍵盤輸入壹個字符
int 21h;
cmp al,30h;判斷輸入的字符是否是0~9之間,若不是,則重新輸入
jb next
cmp al,39h
ja next
sub al,30h;若是,則將其ASCII碼轉換成數字0~9
xlat;查表得到所輸入數字的格雷碼
mov ah,al
mov cl,4
shr ah,cl
add ah,30h
mov result+1,ah;存入result單元中
and al,0fh
add al,30h
mov result,al
lea dx,result;將轉換後的格雷碼在屏幕上輸出
mov ah,9
int 21h
mov ax,4c00h;程序結束
int 21h
code ends
end start