任務:在屏幕上輸出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)
非零時跳轉。
最終結果