本文是自己学习8086汇编语言的学习笔记,用于记录自己所学习过的代码,
例1:写一个程序,它用二进制数显示所按键的ASCII码
CSEG SEGMENT
ASSUME CS:CSEG, DS:CSEG
START: MOV AH, 1 ;调用1号功能,从键盘读取一个字符
INT 21H
CALL NEWLINE ;调用函数,输出换行符和回车符
MOV BL, AL ;将读取到字符从AL中保存到BL寄存器中
MOV CX, 8 ;设置循环次数为8
;
NEXT: SHL BL, 1 ;逻辑左移一位,每次左移,最高位保存到CF中
MOV DL, 30H ;将30H赋值给DL,30H在ASCII中是数字0
ADC DL, 0 ;将进位标记CF与DL,相加,即将BL中的最高位转变为ASCII码
MOV AH, 2 ;显示出来
INT 21H
LOOP NEXT ;循环8次,ASCII码一共有8位
;
MOV DL,'B' ;输出完8给二进制位,在最后打印字符B,表示是二进制数表示
MOV AH, 2
INT 21H
MOV AH, 4CH
INT 21H
;
NEWLINE PROC
PUSH AX
PUSH DX ;保护寄存器
MOV DL,0DH
MOV AH,2
INT 21H ;显示回车符,0DH,在ASCII中是回车符
MOV DL,0AH
MOV AH,2
INT 21H ;显示换行符,0AH,在ASCII中是换行符
POP DX
POP AX ;恢复寄存器
RET
NEWLINE ENDP
CSEG ENDS
END START