MOV AH,02H 是给AH赋值02H,是显示字符的作用,MOV DL, 08H 是表示显示的字符的ASCII码是08H,INT 21H是是DOS的中断调用,整个语句的意思很简单,就是在屏幕上显示08H。汇编博大精通,好好学啊。
是输出DL 没错
之所以屏幕上显示 8,是因为 '8' 这个字的Ascii码 就是38H
输出屏幕时会被转换成 Ascii
所以你如果要屏幕上输出 '38' 要分两次输出
第一次 DL 用33H,会输出 '3'
第二次 DL 用38H, 会输出 '8'
AL寄存器是一个8位积存器,它最大能存储的数字是F,38H明显超过了该寄存器的范围,产生了溢出,
DATA SEGMENT
BUF DB 32
DB ?
DB 32 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,0AH
INT 21H
MOV BX,OFFSET BUF
MOV AL,[BX]
INC BX
CMP AL,[BX]
JAE NEXT
MOV AL,[BX]
NEXT: MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
38H=108,然后你知道了吧