【微机汇编语言学习笔记(一)】DOS功能调用——INT 21H功能调用显示A~Z

1.DOS系统功能调用格式

MOV AH,调用号
设置入口参数
INT 21H;只有执行了这条指令才能实现真正的功能

2.INT 21H功能使用说明

①入口:AH = 00H 或AH = 4CH

    功能:程序终止

②入口:AH = 02H,DL = 数据

    功能:写DL中数据到显示屏

3.LOOP指令

指令格式:LOOP 指令

指令执行:①(CX) = (CX) - 1

                  ②判断CX中的值,不为0则转至标号处执行循环;若为0则顺序向下继续执行。

4.汇编程序

;功能描述:使用INT 21H功能调用实现屏幕显示A~Z共26个字母
SSTACK SEGMENT STACK    ;堆栈段定义
      DW 64 DUP(?)      ;预留64个字单元
SSTACK ENDS

CODE SEGMENT            ;代码段定义
     ASSUME CS:CODE,SS:SSTACK   ;将代码段的首地址与CS寄存器关联,将堆栈段的首地址与SS寄存器关联

START: MOV CX,001AH     ;把循环次数26存入寄存器CX的低8位
       MOV DL,41H       ;把字母A的ASCII码送入DL寄存器
A1:    MOV AH,02H       ;为在显示屏上显示DL寄存器中的内容做准备
       INT 21H          ;INT 21H功能调用,将DL中内容显示在显示屏上
       INC DL           ;DL寄存器中内容加1,即DL中信息变为B的ASCII码
       PUSH CX          ;将CX寄存器中的内容入栈,保护信息
       MOV CX,0002H     ;设置延时时间为0002H,即过了延时时间0002H便开始显示下一个字母
A2:    LOOP A2          ;延时
       POP CX           ;将CX寄存器中内容出栈
       DEC CX           ;CX中内容减1即计数值减1
       JNZ A1           ;CX寄存器中内容不为0转A1即还没有显示完26个字母(此处理解可能存在偏差)
       MOV AX,4C00H     
       INT 21H          ;程序终止
CODE ENDS
     END START

注意:在代码中必须使用ASSUME伪指令把代码段的首地址关联到CS寄存器。数据段关联到DS寄存器。在程序运行时,CS寄存器会自动加载代码段地址的值,而DS寄存器则不会,所以在程序开始时,需要手动将数据段的首地址保存到DS。

5.结果显示

【微机汇编语言学习笔记(一)】DOS功能调用——INT 21H功能调用显示A~Z_第1张图片

你可能感兴趣的:(微机汇编语言,单片机,嵌入式硬件)