Al:从零开始的汇编语言2

任务:在屏幕上输出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)
非零时跳转。

最终结果


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值