TITLE PGM1_1: SAMPLE PROGRAM¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡.MODEL SMALL¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡.STACK¡¡¡¡ 100H¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡.DATA¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡A DW¡¡¡¡¡¡¡¡ 2¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡B DW¡¡¡¡¡¡¡¡ 5¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡SUM
DW¡¡¡¡ ?¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡.CODE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡MAIN¡¡¡¡¡¡¡¡ PROC¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡;initialize DS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡ MOV¡¡ AX,@DATA¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡ MOV¡¡ DS,AX¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡;add the numbers¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡ MOV¡¡ AX,A¡¡¡¡¡¡¡¡¡¡ ;AX
has A¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡ ADD¡¡ AX,B¡¡¡¡¡¡¡¡¡¡ ;AX
has A+B¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡ MOV¡¡ SUM,AX¡¡¡¡¡¡ ;SUM
= A+B¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡;exit to DOS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡ MOV¡¡ AX,4C00H¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡ INT¡¡ 21H¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡MAIN ENDP¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡END¡¡ MAIN¡¡¡¡¡¡¡¡¡¡ |
¡¡¡¡¡¡ .186¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ifndef¡¡ ??version¡¡¡¡¡¡¡¡¡¡¡¡
?debug¡¡ macro¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ endm¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ endif¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ S "main.c"¡¡¡¡¡¡¡¡¡¡¡¡
_TEXT¡¡¡¡ segment byte public 'CODE'¡¡¡¡¡¡¡¡¡¡¡¡
DGROUP¡¡ group¡¡¡¡ _DATA,_BSS¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ assume¡¡ cs:_TEXT,ds:DGROUP,ss:DGROUP¡¡¡¡¡¡¡¡¡¡¡¡
_TEXT¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
_DATA¡¡¡¡ segment word public 'DATA'¡¡¡¡¡¡¡¡¡¡¡¡
d@¡¡ label¡¡¡¡ byte¡¡¡¡¡¡¡¡¡¡¡¡
d@w label¡¡¡¡ word¡¡¡¡¡¡¡¡¡¡¡¡
_DATA¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
_BSS¡¡¡¡¡¡ segment word public 'BSS'¡¡¡¡¡¡¡¡¡¡¡¡
b@¡¡ label¡¡¡¡ byte¡¡¡¡¡¡¡¡¡¡¡¡
b@w label¡¡¡¡ word¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ C E9906D7824066D61696E2E63¡¡¡¡¡¡¡¡¡¡¡¡
_BSS¡¡¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
_DATA¡¡¡¡ segment word public 'DATA'¡¡¡¡¡¡¡¡¡¡¡¡
_A¡¡ label¡¡¡¡ word¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ dw¡¡ 2¡¡¡¡¡¡¡¡¡¡¡¡
_B¡¡ label¡¡¡¡ word¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ dw¡¡ 5¡¡¡¡¡¡¡¡¡¡¡¡
_DATA¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
_TEXT¡¡¡¡ segment byte public 'CODE'¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ C E800066D61696E2E63906D7824¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ L 2¡¡¡¡¡¡¡¡¡¡¡¡
_main¡¡¡¡ proc¡¡¡¡¡¡ near¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ B¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ B¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ L 4¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ mov ax,word ptr DGROUP:_A¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ add ax,word ptr DGROUP:_B¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ mov word ptr DGROUP:_SUM,ax¡¡¡¡¡¡¡¡¡¡¡¡
@1:¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ L 5¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ret¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ E¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ E¡¡¡¡¡¡¡¡¡¡¡¡
_main¡¡¡¡ endp¡¡¡¡¡¡¡¡¡¡¡¡
_TEXT¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
_BSS¡¡¡¡¡¡ segment word public
'BSS'¡¡¡¡¡¡¡¡¡¡¡¡
_SUM¡¡¡¡¡¡ label¡¡¡¡ word¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ db¡¡ 2 dup (?)¡¡¡¡¡¡¡¡¡¡¡¡
_BSS¡¡¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ C E9¡¡¡¡¡¡¡¡¡¡¡¡
_DATA¡¡¡¡ segment word public 'DATA'¡¡¡¡¡¡¡¡¡¡¡¡
s@¡¡ label¡¡¡¡ byte¡¡¡¡¡¡¡¡¡¡¡¡
_DATA¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
_TEXT¡¡¡¡ segment byte public 'CODE'¡¡¡¡¡¡¡¡¡¡¡¡
_TEXT¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ public¡¡ _main¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ public¡¡ _SUM¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ public¡¡ _B¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ public¡¡ _A¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ C EA0109¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ C E31800000023040000¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ C EC055F6D61696E1800¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ C EC045F53554D0400¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ C EC025F420400¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ ?debug¡¡ C EC025F410400¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡ end¡¡¡¡¡¡¡¡¡¡¡¡
¡¡ |