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)
非零時跳轉。

最終結果


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章