任务:在屏幕上输出A-Z共26个大写英文字母
CODE SEGMENT
ASSUME CS:CODE
START:
MOV CX,001AH;英文字母一共26个,16进制为001AH,传入CX预设循环次数
MOV DL,41H;A在ASCII码表中是第65个,转换成16进制为41H
MOV AL,DL;将DL中的数据传给AL
A1:
MOV AH,02H;02H功能号调用,将DL中的内容输出
INT 21H;DOS功能调用
INC DL;DL中ASCII码值加一
PUSH CX;将CX压栈,保留数据
MOV CX,0002H;将一个值传给CX,这行命令用于控制每两个字符显示之间的延时
A2:
LOOP A2;不断循环A2,即循环第12行代码中赋给CX值的次数
POP CX;延时完成,将栈顶元素弹出到CX
DEC CX;CX减一
JNZ A1;如果CX不为0,跳转到A1
MOV AX,4C00H;返回DOS系统功能调用
INT 21H
CODE ENDS
END START本节指令:
MOV DL,41H
MOV AH,02H
INT 21H功能号02H,将DL中的值对应的ASCII码表字符输出到屏幕。
此处CX被使用过两次,分别是控制延时的LOOP A2指令和输出26个字符的次数控制指令。
为了保留CX的当前值,使用了
PUSH CX
POP CX指令用于保护CX中的值。
其他使用到的指令
JNZ(Jump if Not Zero)非零时跳转。
最终结果
本文介绍了一个简单的16进制汇编程序,该程序能够在屏幕上依次输出从A到Z的26个大写字母。通过设置循环次数和ASCII码值,程序实现了字母的逐个显示,并加入了延时指令确保输出效果清晰可见。

7134

被折叠的 条评论
为什么被折叠?



