今天整理电脑时,看到两三年前学习汇编语言时写的显示“Hello”的程序。不禁感叹那个时候学得如此用心,同样的功能,我竟然用了四种写法。现贴出源码,为了以后继续学习,也为了给初学者一点启发。(删掉注释了,感觉注释老对不齐,影响美观。)
程序使用MASM5.0编译(谁让书上用的那么古老……)
第一种:
ASSUME CS:CODECODE SEGMENTDB 'HELLO','$' START:MOV AX,CODEMOV DS,AXMOV DX,00HMOV AH,09HINT 21HMOV AH,00HINT 16HMOV AH,4CHINT 21H CODE ENDS END START
第二种:
ASSUME CS:CODE,DS:DATADATA SEGMENTDB 'HELLO','$' DATA ENDSCODE SEGMENT START:MOV AX,DATAMOV DS,AXMOV DX,00HMOV AH,09HINT 21HMOV AH,00HINT 16HMOV AH,4CHINT 21H CODE ENDS END START
第三种:
ASSUME CS:CODE CODE SEGMENTDB 'HELLO','$'NOPPUSH CSPOP DSMOV DX,00HMOV AH,09HINT 21HMOV AH,00HINT 16HMOV AH,4CHINT 21H CODE ENDS END
第四种:
ASSUME CS:CODE,DS:DATA,ES:STACKDATA SEGMENTDB 'HELLO','$' DATA ENDSSTACK SEGMENTDB 8 DUP (?) STACK ENDSCODE SEGMENTPUSH CSPOP SSPUSH CSPOP DSMOV SP,00HMOV BX,00HPUSH [BX]ADD BX,02HPUSH [BX]ADD BX,02HPUSH [BX]MOV DX,00HMOV AH,09HINT 21HMOV AH,00HINT 16HMOV AH,4CHINT 21H CODE ENDS END
源码及编译好的程序下载,请点我;MASM5.0编译器下载,请点我。