汇编查表法 输出几个16进制数

查表法 大概就是你自己定义一个表 ,然后把你一个数变成一个表中的数。

      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

猜你喜欢

转载自blog.csdn.net/hddddh/article/details/111181862