OUT_AL:
MOV AH,0;对应百位数字
MOV BL,100
DIV BL
MOV BL,AH
MOV AH,2
ADD AL,30H
MOV DL,AL
INT 21H
MOV AL,BL;对应十位数字
MOV AH,0
MOV BL,10
DIV BL
MOV BL,AH
MOV AH,2
ADD AL,30H
MOV DL,AL
INT 21H
MOV DL,BL;对应个位数字
ADD DL,30H
MOV AH,2
INT 21H
RET
原理:16位DIV8位 除法以及2号功能调用。
三位数初始被放到AL中,0——255,先是除以100得到百位数字,而后除以10得到十位数字,和余下的个位数字。显示过程:欲显示x,x应先加上30H(计算机按照ASCII码显示的规则),而后送到到DL中,调用2号功能最终实现显示数字x.
对于显示更多些位数的数字原理一样,不同是需要使用更多的寄存器而已。
后记:16DIV8 被除数在AX中,商在AL中,余数在AH中。格式:DIV ** **代表字节寄存器或者指向单字节的表达式。如:DIV BL; DIV BYTE PTR DS:[0]
32DIV16 被除数高16位存在DX中,低16位存在AX中,运行后商放到AX中,余数放到了DX中。 格式:DIV ** **代表字寄存器或者指向字的表达式。DIV BX ; DIV WORD PTR ES:[0]