查表法 大概就是你自己定义一个表 ,然后把你一个数变成一个表中的数。
mov bx,offset ascii
mov al,s
xlat
这里就是 把 al 变成了表中的第 s 个数。
大概的操作就是 把你要变的数存在 al 再查表就可以把al变成表里的第al个数。
这里用查表法就少了判断是否大于等于 10的操作
代码:
DATAs SEGMENT
N DW 8;
arry DB 01H,25H,38H,62H,8DH,9AH,0BAH,0CEH
ASCII DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB 41H,42H,43H,44H,45H,46H
s DB 0 ;商
y DB 0 ;余数
DATAs ends
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
mov ax,datas
mov ds,ax
mov cx,N
lea si,arry
p:
mov ax,0
mov al,[si]
inc si
call print ;调用函数打印
mov dl,' ' ;打印一个空格
mov ah,2
int 21h
mov dx,0
loop p
MOV AH,4CH
INT 21H
print PROC NEAR
mov dl,16
div dl
mov s,al ;商
mov y,ah ;余数
mov bx,offset ascii
mov al,s
xlat ;查表
mov dl,al
mov ah,2
int 21h
mov al,y
xlat
mov dl,al
mov ah,2
int 21h
ret
print endp
CODES ENDS
END START