├── ROL.exe ├── ROL.obj ├── STR.exe ├── STR.obj ├── SUM.exe ├── SUM.obj ├── UU.exe ├── UU.obj ├── UUU.exe ├── UUU.obj ├── YY.exe ├── YY.obj ├── first ├── pro.exe ├── pro.obj ├── rsrc.rc ├── st.exe ├── st.obj ├── sun.exe ├── sun.obj ├── ACCIE.exe ├── ACCIE.obj ├── ASCCI.asm ├── ASCCI.exe ├── ASCCI.ico ├── ASCCI.inc ├── ASCCI.obj ├── After.obj ├── DOS_V.exe ├── DOS_V.obj ├── Hello.exe ├── Hello.obj ├── Mine.exe ├── Mine.obj ├── QUIS.exe ├── QUIS.obj ├── assm2.exe ├── assm2.obj ├── misc.asm ├── rsrc.RES ├── rsrc.obj ├── scan.exe ├── scan.obj ├── stack.exe ├── stack.obj ├── ANOTHER.exe ├── ANOTHER.obj ├── Compare.exe ├── Compare.obj ├── DATE_K.exe ├── DATE_K.obj ├── Encode.exe ├── Encode.obj ├── HYS_CH.exe ├── HYS_CH.obj ├── SECRET.exe ├── SECRET.obj ├── STACK2.exe ├── STACK2.obj ├── TIIM_CH.exe ├── TIIM_CH.obj ├── TORING.exe ├── TORING.obj ├── bluegrad.bmp ├── desimal.exe ├── desimal.obj ├── oneass.exe ├── oneass.obj ├── scondass.exe ├── scondass.obj ├── select.exe ├── select.obj ├── stack1.exe ├── stack1.obj ├── stackuse.exe ├── stackuse.obj ├── toolbar.bmp ├── pro.asm ├── HALA.hla ├── SUM.asm ├── THE ONE.asm ├── assm2.asm ├── assm_mas ├── YY.asm ├── UUU.asm ├── H.asm ├── Hello.asm ├── UU.asm ├── firsthello.asm ├── select.asm ├── MOON.asm ├── ROL.asm ├── firstass.asm ├── thirdass.asm ├── ANOTHER.asm ├── procedorres.asm ├── ACCIE.asm ├── desimal.asm ├── masm ├── TORING.asm ├── After.asm ├── QUIS.asm ├── ASCCI.xml ├── Mine.asm ├── scondass.asm ├── stack.asm ├── fourth.asm ├── STR.asm ├── STACK2.asm ├── stack1.asm ├── STACKUSING.asm ├── STACK_USE.asm ├── st.asm ├── stackuse.asm ├── DOS_N.asm ├── DOS_V.asm ├── HO.asm ├── Lreader.asm ├── oneass.asm ├── scan.asm ├── LICENSE ├── Encode.asm ├── SECRET.asm ├── Encode_message.asm ├── TIIM_CH.asm ├── HYS_CH.asm ├── makeit.bat ├── desimall.asm ├── DATE_K.asm ├── DATE_KNOWN.asm ├── README.md ├── sun.asm ├── Compare.asm └── DES_NUM.asm /ROL.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ROL.exe -------------------------------------------------------------------------------- /ROL.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ROL.obj -------------------------------------------------------------------------------- /STR.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/STR.exe -------------------------------------------------------------------------------- /STR.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/STR.obj -------------------------------------------------------------------------------- /SUM.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/SUM.exe -------------------------------------------------------------------------------- /SUM.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/SUM.obj -------------------------------------------------------------------------------- /UU.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/UU.exe -------------------------------------------------------------------------------- /UU.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/UU.obj -------------------------------------------------------------------------------- /UUU.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/UUU.exe -------------------------------------------------------------------------------- /UUU.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/UUU.obj -------------------------------------------------------------------------------- /YY.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/YY.exe -------------------------------------------------------------------------------- /YY.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/YY.obj -------------------------------------------------------------------------------- /first: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/first -------------------------------------------------------------------------------- /pro.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/pro.exe -------------------------------------------------------------------------------- /pro.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/pro.obj -------------------------------------------------------------------------------- /rsrc.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/rsrc.rc -------------------------------------------------------------------------------- /st.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/st.exe -------------------------------------------------------------------------------- /st.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/st.obj -------------------------------------------------------------------------------- /sun.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/sun.exe -------------------------------------------------------------------------------- /sun.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/sun.obj -------------------------------------------------------------------------------- /ACCIE.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ACCIE.exe -------------------------------------------------------------------------------- /ACCIE.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ACCIE.obj -------------------------------------------------------------------------------- /ASCCI.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ASCCI.asm -------------------------------------------------------------------------------- /ASCCI.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ASCCI.exe -------------------------------------------------------------------------------- /ASCCI.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ASCCI.ico -------------------------------------------------------------------------------- /ASCCI.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ASCCI.inc -------------------------------------------------------------------------------- /ASCCI.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ASCCI.obj -------------------------------------------------------------------------------- /After.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/After.obj -------------------------------------------------------------------------------- /DOS_V.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/DOS_V.exe -------------------------------------------------------------------------------- /DOS_V.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/DOS_V.obj -------------------------------------------------------------------------------- /Hello.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/Hello.exe -------------------------------------------------------------------------------- /Hello.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/Hello.obj -------------------------------------------------------------------------------- /Mine.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/Mine.exe -------------------------------------------------------------------------------- /Mine.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/Mine.obj -------------------------------------------------------------------------------- /QUIS.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/QUIS.exe -------------------------------------------------------------------------------- /QUIS.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/QUIS.obj -------------------------------------------------------------------------------- /assm2.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/assm2.exe -------------------------------------------------------------------------------- /assm2.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/assm2.obj -------------------------------------------------------------------------------- /misc.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/misc.asm -------------------------------------------------------------------------------- /rsrc.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/rsrc.RES -------------------------------------------------------------------------------- /rsrc.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/rsrc.obj -------------------------------------------------------------------------------- /scan.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/scan.exe -------------------------------------------------------------------------------- /scan.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/scan.obj -------------------------------------------------------------------------------- /stack.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/stack.exe -------------------------------------------------------------------------------- /stack.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/stack.obj -------------------------------------------------------------------------------- /ANOTHER.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ANOTHER.exe -------------------------------------------------------------------------------- /ANOTHER.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/ANOTHER.obj -------------------------------------------------------------------------------- /Compare.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/Compare.exe -------------------------------------------------------------------------------- /Compare.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/Compare.obj -------------------------------------------------------------------------------- /DATE_K.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/DATE_K.exe -------------------------------------------------------------------------------- /DATE_K.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/DATE_K.obj -------------------------------------------------------------------------------- /Encode.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/Encode.exe -------------------------------------------------------------------------------- /Encode.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/Encode.obj -------------------------------------------------------------------------------- /HYS_CH.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/HYS_CH.exe -------------------------------------------------------------------------------- /HYS_CH.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/HYS_CH.obj -------------------------------------------------------------------------------- /SECRET.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/SECRET.exe -------------------------------------------------------------------------------- /SECRET.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/SECRET.obj -------------------------------------------------------------------------------- /STACK2.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/STACK2.exe -------------------------------------------------------------------------------- /STACK2.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/STACK2.obj -------------------------------------------------------------------------------- /TIIM_CH.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/TIIM_CH.exe -------------------------------------------------------------------------------- /TIIM_CH.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/TIIM_CH.obj -------------------------------------------------------------------------------- /TORING.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/TORING.exe -------------------------------------------------------------------------------- /TORING.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/TORING.obj -------------------------------------------------------------------------------- /bluegrad.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/bluegrad.bmp -------------------------------------------------------------------------------- /desimal.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/desimal.exe -------------------------------------------------------------------------------- /desimal.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/desimal.obj -------------------------------------------------------------------------------- /oneass.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/oneass.exe -------------------------------------------------------------------------------- /oneass.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/oneass.obj -------------------------------------------------------------------------------- /scondass.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/scondass.exe -------------------------------------------------------------------------------- /scondass.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/scondass.obj -------------------------------------------------------------------------------- /select.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/select.exe -------------------------------------------------------------------------------- /select.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/select.obj -------------------------------------------------------------------------------- /stack1.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/stack1.exe -------------------------------------------------------------------------------- /stack1.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/stack1.obj -------------------------------------------------------------------------------- /stackuse.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/stackuse.exe -------------------------------------------------------------------------------- /stackuse.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/stackuse.obj -------------------------------------------------------------------------------- /toolbar.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family-/HEAD/toolbar.bmp -------------------------------------------------------------------------------- /pro.asm: -------------------------------------------------------------------------------- 1 | INCLUDE DES_NUM.ASM 2 | .MODEL SMALL 3 | .STACK 100H 4 | .CODE 5 | MAIN PROC 6 | CALL MULTIPLY 7 | MOV AH,4CH 8 | INT 21H 9 | MAIN ENDP 10 | END MAIN -------------------------------------------------------------------------------- /HALA.hla: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | .CODE 5 | MAIN PROC 6 | MOV AH,2 7 | MOV CX,256 8 | MOV DL,0 9 | PRINT_FUCK: 10 | INT 21H 11 | INC DL 12 | DEC CX 13 | JNZ PRINT_FUCK 14 | MOV AH,4CH 15 | INT 21H 16 | MAIN ENDP 17 | END MAIN -------------------------------------------------------------------------------- /SUM.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | SUM DB ? 5 | .CODE 6 | MAIN PROC 7 | MOV AX,@DATA 8 | MOV DS,AX 9 | MOV AX ,4 10 | MOV BX,5 11 | MUL BX 12 | MOV AH,09H 13 | INT 21H 14 | MOV AH,4CH 15 | INT 21H 16 | MAIN ENDP 17 | END MAIN -------------------------------------------------------------------------------- /THE ONE.asm: -------------------------------------------------------------------------------- 1 | TITEL MYPROG1 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | MSG DB 'THIS IS THE ONE!' 6 | .CODE 7 | MAIN PROC 8 | MOV AX,DATA@ 9 | MOV DX,AX 10 | LEA DX,MSG 11 | MOV AH,9H 12 | INT 21H 13 | MOV AH,4CH 14 | INT 21 15 | MAIN ENDP 16 | END MAIN -------------------------------------------------------------------------------- /assm2.asm: -------------------------------------------------------------------------------- 1 | TITLE SECOND: DISPLAY STRING 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | MSG DB 'HELLO!$' 6 | .CODE 7 | MAIN PROC 8 | MOV AX,@DATA 9 | MOV DS,AX 10 | LEA DX,MSG 11 | MOV AH,09H 12 | INT 21H 13 | MOV AH,4CH 14 | INT 21H 15 | MAIN ENDP 16 | END MAIN -------------------------------------------------------------------------------- /assm_mas: -------------------------------------------------------------------------------- 1 | TITLE SECOND: DISPLAY STRING 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | MSG DB 'HELLO!$' 6 | .CODE 7 | MAIN PROC 8 | MOV AX,@DATA 9 | MOV DS,AX 10 | LEA DX,MSG 11 | MOV AH,09H 12 | INT 21H 13 | MOV AH,4CH 14 | INT 21H 15 | MAIN ENDP 16 | END MAIN -------------------------------------------------------------------------------- /YY.asm: -------------------------------------------------------------------------------- 1 | ;.TITEL HELLO WORLD 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | MESSAGE DB "HELLO,WORLED$" 6 | .CODE 7 | MAIN PROC 8 | MOV AX,@DATA 9 | MOV DS,AX 10 | LEA DX,MESSAGE 11 | MOV AH,09H 12 | INT 21H 13 | MOV AH,4CH 14 | INT 21H 15 | MAIN ENDP 16 | END MAIN -------------------------------------------------------------------------------- /UUU.asm: -------------------------------------------------------------------------------- 1 | ;.TITEL HELLO WORLD 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | MESSAGE DB "HELLO,WORLED$" 6 | .CODE 7 | MAIN PROC 8 | MOV AX,@DATA 9 | MOV DS,AX 10 | LEA DX,MESSAGE 11 | MOV AH,09H 12 | INT 21H 13 | MOV AH,4CH 14 | INT 21H 15 | MAIN ENDP 16 | END MAIN -------------------------------------------------------------------------------- /H.asm: -------------------------------------------------------------------------------- 1 | .TITEL HELLO WORLED 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | MESSAGE DB "HELLO,WORLED$" 6 | .CODE 7 | MAIN PROC 8 | MOV AX,@DATA 9 | MOV DS,AX 10 | LEA DX,MESSAGE 11 | MOV AH,09H 12 | INT 21H 13 | MOV AH,4CH 14 | INT 21H 15 | MAIN ENDP 16 | END MAIN 17 | 18 | -------------------------------------------------------------------------------- /Hello.asm: -------------------------------------------------------------------------------- 1 | ;.TITEL HELLO WORLED 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | MESSAGE DB "HELLO,WORLED$" 6 | .CODE 7 | MAIN PROC 8 | MOV AX,@DATA 9 | MOV DS,AX 10 | LEA DX,MESSAGE 11 | MOV AH,09H 12 | INT 21H 13 | MOV AH,4CH 14 | INT 21H 15 | MAIN ENDP 16 | END MAIN 17 | 18 | -------------------------------------------------------------------------------- /UU.asm: -------------------------------------------------------------------------------- 1 | ;.TITEL HELLO WORLED 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | MESSAGE DB "HELLO,WORLED$" 6 | .CODE 7 | MAIN PROC 8 | MOV AX,@DATA 9 | MOV DS,AX 10 | LEA DX,MESSAGE 11 | MOV AH,09H 12 | INT 21H 13 | MOV AH,4CH 14 | INT 21H 15 | MAIN ENDP 16 | END MAIN 17 | 18 | -------------------------------------------------------------------------------- /firsthello.asm: -------------------------------------------------------------------------------- 1 | .TITEL HELLO WORLED 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | MESSAGE DB "HELLO,WORLED$" 6 | .CODE 7 | MAIN PROC 8 | MOV AX,@DATA 9 | MOV DS,AX 10 | LEA DX,MESSAGE 11 | MOV AH,09H 12 | INT 21H 13 | MOV AH,4CH 14 | INT 21H 15 | MAIN ENDP 16 | END MAIN 17 | 18 | -------------------------------------------------------------------------------- /select.asm: -------------------------------------------------------------------------------- 1 | TITLE SORT: SELECT SORT PROGRAM 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | A DB 5 , 2 , 1 , 3 , 4 6 | .CODE 7 | MAIN PROC 8 | MOV AX , @DATA 9 | MOV DS , AX 10 | LEA SI , A 11 | CALL SELECT 12 | ;dos exit 13 | MOV AH,4CH 14 | INT 21H 15 | MAIN ENDP 16 | INCLUDE DES_NUM.ASM 17 | END MAIN -------------------------------------------------------------------------------- /MOON.asm: -------------------------------------------------------------------------------- 1 | ;TITEL MOON 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | .CODE 6 | MAIN PROC 7 | XOR BX,BX 8 | MOV AH,1 9 | INT 21h 10 | While_: 11 | CMP AL, 0Dh 12 | JE END_While 13 | AND AL , 0fh 14 | SHL BX, 1 15 | OR BL, AL 16 | INT 21h  17 | JMP While_ 18 | END_While: 19 | ;MAIN ENDP 20 | ;END MAIN -------------------------------------------------------------------------------- /ROL.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | .CODE 5 | MAIN PROC 6 | MOV DX ,16D ; :t8  7 t( 7 | XOR AX,AX ; AX 6&O *B 8 | MOV CL,1 ;4%  7 ( 9 | Top : ROL BX,CL 10 | MOV AH,09H 11 | INT 21H 12 | JNC NEXT 13 | INC AX 14 | NEXT: DEC DX 15 | JNZ Top 16 | MOV AH,4CH 17 | INT 21H 18 | MAIN ENDP 19 | END MAIN -------------------------------------------------------------------------------- /firstass.asm: -------------------------------------------------------------------------------- 1 | TITLE FIRST ECHO PROGRAM 2 | .MODEL SMALL 3 | .STACK 100H 4 | 5 | MAIN PROC 6 | MOV AH,2 7 | MOV DL,??? 8 | INT 21H 9 | MOV AH,01 10 | INT 21H 11 | MOV BL,AL 12 | MOV AH,02 13 | MOV DL,0DH 14 | INT 21H 15 | MOV DL,0AH 16 | INT 21H 17 | MOV DL,BL 18 | INT 21H 19 | MOV AH,4CH 20 | INT 21H 21 | MAIN ENDP 22 | END MAIN -------------------------------------------------------------------------------- /thirdass.asm: -------------------------------------------------------------------------------- 1 | 2 | TITLE THIRD: CASE CONVERSION PROGRAM 3 | .MODEL SMALL 4 | .STACK 100H 5 | .DATA 6 | CR EQU 0DH 7 | LF EQU 0AH 8 | include emu8086.inc 9 | ;ORG 100h 10 | PRINT 'Hello World!' 11 | GOTOXY 10, 5 12 | PUTC 65 ; 65 - is an ASCII code for 'A' 13 | PUTC 'B' 14 | RET ; return to operating system. 15 | END ; directive to stop the compiler -------------------------------------------------------------------------------- /ANOTHER.asm: -------------------------------------------------------------------------------- 1 | ;TITEL SOM 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | String1 DB "Hello" 6 | String2 DB 5 dup(?) 7 | .CODE 8 | MAIN PROC 9 | MOV AX, @DATA 10 | MOV DS, AX 11 | MOV ES, AX 12 | STD 13 | MOV CX, 5 14 | LEA SI, String1+4 15 | LEA DI, String2 16 | Next: MOVSB 17 | ADD DI, 2 18 | LOOP Next 19 | MOV AH,4CH 20 | INT 21 21 | MAIN ENDP 22 | END MAIN -------------------------------------------------------------------------------- /procedorres.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .CODE 4 | MAIN PROC 5 | CALL MULTIPLY 6 | MOV AH,4CH 7 | INT 21H 8 | MAIN ENDP 9 | MULTIPLY PROC 10 | PUSH AX 11 | PUSH BX 12 | XOR DX ,DX 13 | REPEAT: 14 | TEST BX ,1 15 | JZ END_IF 16 | ADD DX ,AX 17 | END_IF: 18 | SHL AX ,1 19 | SHR BX ,1 20 | JNZ REPEAT 21 | POP BX 22 | POP AX 23 | RET 24 | MULTIPLY ENDP 25 | END MAIN -------------------------------------------------------------------------------- /ACCIE.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | MSD DB "ACCIE$" 5 | .CODE 6 | MAIN PROC 7 | MOV AX,@DATA 8 | MOV DS,AX 9 | LEA DX,MSD 10 | MOV AH,9 11 | INT 21H 12 | MOV DL,0DH 13 | INT 21H 14 | MOV AH,2 15 | MOV CX,256 16 | MOV DL,0 17 | PRINT_TUCK: 18 | INT 21H 19 | INC DL 20 | DEC CX 21 | JNZ PRINT_TUCK 22 | MOV AH,4CH 23 | INT 21H 24 | MAIN ENDP 25 | END MAIN 26 | -------------------------------------------------------------------------------- /desimal.asm: -------------------------------------------------------------------------------- 1 | TITLE DECIMAL: READ WRITE 2 | INCLUDE DES_NUM.ASM 3 | .MODEL SMALL 4 | .STACK 100H 5 | .CODE 6 | MAIN PROC 7 | ;INPUT A NUMBER 8 | CALL INDEC 9 | PUSH AX 10 | ;MOVE CURSOR TO NEXT LINE 11 | MOV AH , 2 12 | MOV DL , 0DH 13 | INT 21H 14 | MOV DL ,0AH 15 | INT 21H 16 | ;OUTPUT A NUMBER 17 | POP AX 18 | CALL OUTDEC 19 | ;EXIT 20 | MOV AH,4CH 21 | INT 21H 22 | MAIN ENDP 23 | 24 | END MAIN -------------------------------------------------------------------------------- /masm: -------------------------------------------------------------------------------- 1 | section .text 2 | global main ;must be declared for linker (ld) 3 | main: ;tells linker entry point 4 | mov edx,len ;message length 5 | mov ecx,msg ;message to write 6 | mov ebx,1 ;file descriptor (stdout) 7 | mov eax,4 ;system call number (sys_write) 8 | int 0x80 ;call kernel 9 | mov eax,1 ;system call number (sys_exit) 10 | int 0x80 ;call kernel 11 | section .data 12 | msg db 'Hello, world!', 0xa ;our dear string 13 | len equ $ - msg ;length of our dear string -------------------------------------------------------------------------------- /TORING.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | MES1 DB "WELCOME TO THE FIRST APP$" 5 | NTR DB "-YES MAN-" 6 | FIR DB 34 7 | SEC DB 54 8 | RES DB ? 9 | .CODE 10 | MAIN PROC 11 | MOV AX,@DATA 12 | MOV DS,AX 13 | LEA DX,MES1 14 | MOV AH,9 15 | INT 21H 16 | MOV AH,2 17 | MOV CX,1000 18 | MOV DL,0 19 | Print_Loop: 20 | INT 21H 21 | INC DL 22 | DEC CX 23 | MOV DL,'!' 24 | MOV AH,2 25 | INT 21H 26 | JNZ PRINT_LOOP 27 | MOV AH,4CH 28 | INT 21H 29 | MAIN ENDP 30 | END MAIN -------------------------------------------------------------------------------- /After.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 3 | .DATA 4 | CR EQU 0DH 5 | one DB "THIS IS SOMTHING$",CR,"$" 6 | TWO DB "ONOTHER ONE$" 7 | .CODE 8 | MAIN PROC 9 | ;inializing DS 10 | MOV AX,@DATA 11 | MOV DS,AX 12 | ;disply the message 13 | LEA DX,one 14 | MOV AH,09H 15 | INT 21H 16 | ;for loop 17 | For_Loop: 18 | LEA DX,one 19 | MOV AH,09H 20 | INT 21H 21 | MOV CX,10 22 | DEC CX 23 | CMP CX,0 24 | JE For_Loop 25 | ;end programme 26 | MOV AH,4CH 27 | INT 21H 28 | MAIN ENDP 29 | END MAIN 30 | -------------------------------------------------------------------------------- /QUIS.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | QUS DB "HOW OLD YOU :$" 5 | OLD DB "YOU ARE OLD$" 6 | HOW DB ? 7 | YUNG DB "YOU ARE YUNG$" 8 | .CODE 9 | MAIN PROC 10 | MOV AX,@DATA 11 | MOV DS,AX 12 | LEA DX,QUS 13 | MOV AH,9 14 | INT 21H 15 | MOV AH,1 16 | INT 21H 17 | CMP AH,20 18 | JGE OLDER 19 | CALL YUNGER 20 | YUNGER: 21 | LEA DX,YUNG 22 | MOV AH,9 23 | INT 21H 24 | OLDER: 25 | LEA DX,OLD 26 | MOV AH,9 27 | INT 21H 28 | MOV AH,4CH 29 | INT 21H 30 | MAIN ENDP 31 | END MAIN -------------------------------------------------------------------------------- /ASCCI.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Windows Application 4 | 5 | 6 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Mine.asm: -------------------------------------------------------------------------------- 1 | TITLE PRGM1 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | 6 | .CODE 7 | MAIN PROC 8 | MOV BL, 10 9 | DIV BL ; getting least significant digit 10 | ADD AH, '3' ; converting L.S. digit to ASCII 11 | MOV DH, AH ; storing L.S. digit temporarily 12 | MOV AH, 0 13 | DIV BL ; getting most significant digit 14 | ADD AH, '4' ; converting M.S. digit into ASCII 15 | MOV DL, AH ; displaying M.S. digit 16 | MOV AH, 2 17 | INT 21H 18 | MOV DL, DH ; displaying least significant digit 19 | ADD BL,'8' 20 | MOV DL,BL 21 | INT 21H 22 | MAIN ENDP 23 | END MAIN -------------------------------------------------------------------------------- /scondass.asm: -------------------------------------------------------------------------------- 1 | TITLE THIRD: CASE CONVERSION PROGRAM 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | CR EQU 0DH 6 | LF EQU 0AH 7 | MSG1 DB 'ENTER A LOWER CASE LETTER: $' 8 | MSG2 DB CR,LF,'IN UPPER CASE IT IS :' 9 | CHAR DB ?,'$' 10 | .CODE 11 | MAIN PROC 12 | MOV AX,@DATA 13 | MOV DS,AX 14 | ;print user prompt 15 | LEA DX,MSG1 16 | MOV AH,09H 17 | INT 21H 18 | MOV AH,01H 19 | INT 21H 20 | SUB AL,20H 21 | MOV CHAR,AL 22 | ;display on the next line 23 | LEA DX,MSG2 24 | MOV AH,09H 25 | INT 21H 26 | ;return to DOS 27 | MOV AH,4CH 28 | INT 21H 29 | MAIN ENDP 30 | END MAIN -------------------------------------------------------------------------------- /stack.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .CODE 4 | MAIN PROC 5 | ; display user prompt 6 | MOV AH,2 7 | MOV DL,'?' 8 | INT 21H 9 | ;initialize character count 10 | XOR CX , CX 11 | ;read character 12 | MOV AH , 1 13 | INT 21H 14 | ;while character is not a carriage return do 15 | WHILE_: 16 | CMP AL ,0DH 17 | JE END_WHILE 18 | PUSH AX 19 | INC CX 20 | INT 21H 21 | JMP WHILE_ 22 | END_WHILE: 23 | MOV AH , 2 24 | MOV DL , 0DH 25 | INT 21H 26 | MOV DL , 0AH 27 | INT 21H 28 | JCXZ EXIT 29 | TOP: 30 | POP DX 31 | INT 21H 32 | LOOP TOP 33 | EXIT: MOV AH , 4CH 34 | INT 21H 35 | MAIN ENDP 36 | END MAIN -------------------------------------------------------------------------------- /fourth.asm: -------------------------------------------------------------------------------- 1 | TITLE THIRD: CASE CONVERSION PROGRAM 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | CR EQU 0DH 6 | LF EQU 0AH 7 | ;include 8 | ;ORG 100h 9 | LEA SI, msg1 ; ask for the number 10 | CALL print_string 11 | CALL scan_num ; get number in CX. 12 | MOV AX, CX ; copy the number to AX. 13 | ; print the following string: 14 | CALL pthis 15 | DB 13, 10, 'You have entered: ', 0 16 | CALL print_num ; print number in AX. 17 | RET ; return to operating system. 18 | msg1 DB 'Enter the number: ', 0 19 | DEFINE_SCAN_NUM 20 | DEFINE_PRINT_STRING 21 | DEFINE_PRINT_NUM 22 | DEFINE_PRINT_NUM_UNS ; required for print_num. 23 | DEFINE_PTHIS 24 | END ; directive to stop the compiler. -------------------------------------------------------------------------------- /STR.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | .CODE 5 | MAIN PROC 6 | READ_STR PROC NEAR 7 | ;READS AND STORES A STRING 8 | ;INPUT: DI ODFFSET OF THE STRING 9 | ;OUTPUT: DI OFFSET OF THE STRING 10 | ; BX=NUMBER OF CHARACTERS READ 11 | PUSH DX 12 | PUSH DI 13 | CLD 14 | XOR BX , BX 15 | MOV AH , 1 16 | INT 21H 17 | WHILE1: 18 | CMP AL , 0DH 19 | JE END_WHILE1 20 | ;IF CHARACTER IS BACHSPACE 21 | CMP AL , 8H 22 | JNE ELSE1 23 | DEC DI 24 | DEC BX 25 | JMP READ 26 | ELSE1: 27 | STOSB 28 | INC BX 29 | READ: 30 | INT 21H 31 | JMP WHILE1 32 | END_WHILE1: 33 | POP DI 34 | POP AX 35 | RET 36 | READ_STR ENDP 37 | MOV AH,4CH 38 | INT 21H 39 | MAIN ENDP 40 | END MAIN -------------------------------------------------------------------------------- /STACK2.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | .CODE 5 | MAIN PROC 6 | ; Disply user prompt 7 | MOV AH,2 8 | MOV DL,'?' 9 | INT 21H 10 | XOR CX,CX 11 | ; recive an input 12 | MOV AH,1 13 | INT 21H 14 | ;WHILE LOOP 15 | WHILE_: 16 | ; if input not equal CR 17 | CMP AL,0DH 18 | ; go to end_while 19 | JE END_WHILE 20 | PUSH AX 21 | INC CX 22 | INT 21H 23 | JMP WHILE_ 24 | ;end_while.. 25 | END_WHILE: 26 | ; if CR 27 | MOV AH,2 28 | MOV DL,0DH 29 | ; if LF 30 | MOV DL,0AH 31 | INT 21H 32 | ; exute if CX is ZERO 33 | JCXZ EXIT 34 | TOP: 35 | POP DX 36 | INT 21H 37 | LOOP TOP 38 | ; if done end programme 39 | EXIT: 40 | MOV AH,4CH 41 | INT 21H 42 | MAIN ENDP 43 | END MAIN -------------------------------------------------------------------------------- /stack1.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | .CODE 5 | MAIN PROC 6 | ; Disply user prompt 7 | MOV AH,2 8 | MOV DL,'?' 9 | INT 21H 10 | XOR CX,CX 11 | ; recive an input 12 | MOV AH,1 13 | INT 21H 14 | ;WHILE LOOP 15 | WHILE_: 16 | ; if input not equal CR 17 | CMP AL,0DH 18 | ; go to end_while 19 | JE END_WHILE 20 | PUSH AX 21 | INC CX 22 | INT 21H 23 | JMP WHILE_ 24 | ;end_while.. 25 | END_WHILE: 26 | ; if CR 27 | MOV AH,2 28 | MOV DL,0DH 29 | ; if LF 30 | MOV DL,0AH 31 | INT 21H 32 | ; exute if CX is ZERO 33 | JCXZ EXIT 34 | TOP: 35 | POP DX 36 | INT 21H 37 | LOOP TOP 38 | ; if done end programme 39 | EXIT: 40 | MOV AH,4CH 41 | INT 21H 42 | MAIN ENDP 43 | END MAIN -------------------------------------------------------------------------------- /STACKUSING.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | .CODE 5 | MAIN PROC 6 | ; Disply user prompt 7 | MOV AH,2 8 | MOV DL,'?' 9 | INT 21H 10 | XOR CX,CX 11 | ; recive an input 12 | MOV AH,1 13 | INT 21H 14 | ;WHILE LOOP 15 | WHILE_: 16 | ; if input not equal CR 17 | CMP AL,0DH 18 | ; go to end_while 19 | JE END_WHILE 20 | PUSH AX 21 | INC CX 22 | INT 21H 23 | JMP WHILE_ 24 | ;end_while.. 25 | END_WHILE: 26 | ; if CR 27 | MOV AH,2 28 | MOV DL,0DH 29 | ; if LF 30 | MOV DL,0AH 31 | INT 21H 32 | ; exute if CX is ZERO 33 | JCXZ EXIT 34 | TOP: 35 | POP DX 36 | INT 21H 37 | LOOP TOP 38 | ; if done end programme 39 | EXIT: 40 | MOV AH,4CH 41 | INT 21H 42 | MAIN ENDP 43 | END MAIN -------------------------------------------------------------------------------- /STACK_USE.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | .CODE 5 | MAIN PROC 6 | ; Disply user prompt 7 | MOV AH,2 8 | MOV DL,'?' 9 | INT 21H 10 | XOR CX,CX 11 | ; recive an input 12 | MOV AH,1 13 | INT 21H 14 | ;WHILE LOOP 15 | WHILE_: 16 | ; if input not equal CR 17 | CMP AL,0DH 18 | ; go to end_while 19 | JE END_WHILE 20 | PUSH AX 21 | INC CX 22 | INT 21H 23 | JMP WHILE_ 24 | ;end_while.. 25 | END_WHILE: 26 | ; if CR 27 | MOV AH,2 28 | MOV DL,0DH 29 | ; if LF 30 | MOV DL,0AH 31 | INT 21H 32 | ; exute if CX is ZERO 33 | JCXZ EXIT 34 | TOP: 35 | POP DX 36 | INT 21H 37 | LOOP TOP 38 | ; if done end programme 39 | EXIT: 40 | MOV AH,4CH 41 | INT 21H 42 | MAIN ENDP 43 | END MAIN -------------------------------------------------------------------------------- /st.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | .CODE 5 | MAIN PROC 6 | ; Disply user prompt 7 | MOV AH,2 8 | MOV DL,'?' 9 | INT 21H 10 | XOR CX,CX 11 | ; recive an input 12 | MOV AH,1 13 | INT 21H 14 | ;WHILE LOOP 15 | WHILE_: 16 | ; if input not equal CR 17 | CMP AL,0DH 18 | ; go to end_while 19 | JE END_WHILE 20 | PUSH AX 21 | INC CX 22 | INT 21H 23 | JMP WHILE_ 24 | ;end_while.. 25 | END_WHILE: 26 | ; if CR 27 | MOV AH,2 28 | MOV DL,0DH 29 | ; if LF 30 | MOV DL,0AH 31 | INT 21H 32 | 33 | ; exute if CX is ZERO 34 | JCXZ EXIT 35 | TOP: 36 | POP DX 37 | INT 21H 38 | LOOP TOP 39 | ; if done end programme 40 | EXIT: 41 | MOV AH,4CH 42 | INT 21H 43 | MAIN ENDP 44 | END MAIN -------------------------------------------------------------------------------- /stackuse.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | .CODE 5 | MAIN PROC 6 | ; Disply user prompt 7 | MOV AH,2 8 | MOV DL,'?' 9 | INT 21H 10 | XOR CX,CX 11 | ; recive an input 12 | MOV AH,1 13 | INT 21H 14 | ;WHILE LOOP 15 | WHILE_: 16 | ; if input not equal CR 17 | CMP AL,0DH 18 | ; go to end_while 19 | JE END_WHILE 20 | PUSH AX 21 | INC CX 22 | INT 21H 23 | JMP WHILE_ 24 | ;end_while.. 25 | END_WHILE: 26 | ; if CR 27 | MOV AH,2 28 | MOV DL,0DH 29 | ; if LF 30 | MOV DL,0AH 31 | INT 21H 32 | 33 | ; exute if CX is ZERO 34 | JCXZ EXIT 35 | TOP: 36 | POP DX 37 | INT 21H 38 | LOOP TOP 39 | ; if done end programme 40 | EXIT: 41 | MOV AH,4CH 42 | INT 21H 43 | MAIN ENDP 44 | END MAIN -------------------------------------------------------------------------------- /DOS_N.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | CR EQU 0DH 5 | LF EQU 0AH 6 | MAJOR DB '?' 7 | MINOR DB '?' 8 | MSG DB 'GET DOS VERSION:INT 21H FUNCTION 3OH',CR,LF,'MS-DOS Version ,'$' 9 | MSG1 DB CR,LF,'MAJOR VERSION NUMBER IS :$' 10 | MSG2 DB CR,LF,'MINOR VERSION NUMBER IS :$' 11 | .CODE 12 | MAIN PROC 13 | ;initialization 14 | MOV AX,@DATA 15 | MOV DS,AX 16 | ;get dos version 17 | MOV AH,30H 18 | INT 21H 19 | MOV MAJOR,AL 20 | MOV MINOR ,AH 21 | ;display results 22 | LEA DX,MSG 23 | MOV AH,9h 24 | INT 21H 25 | LEA DX,MSG1 26 | MOV AH,9h 27 | INT 21H 28 | XOR AX,AX 29 | MOV AL,MAJOR 30 | CALL OUTDEC 31 | LEA DX,MSG2 32 | MOV AH,9h 33 | INT 21H 34 | XOR AX,AX 35 | MOV AL,MINOR 36 | CALL OUTDEC 37 | ;return to dos 38 | MOV AH,4CH 39 | INT 21H 40 | MAIN ENDP 41 | Include DES_NUM.asm 42 | END MAIN -------------------------------------------------------------------------------- /DOS_V.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | CR EQU 0DH 5 | LF EQU 0AH 6 | MAJOR DB '?' 7 | MINOR DB '?' 8 | MSG DB 'GET DOS VERSION:INT 21H FUNCTION 3OH',CR,LF,'MS-DOS Version ,$' 9 | MSG1 DB CR,LF,'MAJOR VERSION NUMBER IS :$' 10 | MSG2 DB CR,LF,'MINOR VERSION NUMBER IS :$' 11 | .CODE 12 | MAIN PROC 13 | ;initialization 14 | MOV AX,@DATA 15 | MOV DS,AX 16 | ;get dos version 17 | MOV AH,30H 18 | INT 21H 19 | MOV MAJOR,AL 20 | MOV MINOR ,AH 21 | ;display results 22 | LEA DX,MSG 23 | MOV AH,9h 24 | INT 21H 25 | LEA DX,MSG1 26 | MOV AH,9h 27 | INT 21H 28 | XOR AX,AX 29 | MOV AL,MAJOR 30 | CALL OUTDEC 31 | LEA DX,MSG2 32 | MOV AH,9h 33 | INT 21H 34 | XOR AX,AX 35 | MOV AL,MINOR 36 | CALL OUTDEC 37 | ;return to dos 38 | MOV AH,4CH 39 | INT 21H 40 | MAIN ENDP 41 | Include DES_NUM.asm 42 | END MAIN -------------------------------------------------------------------------------- /HO.asm: -------------------------------------------------------------------------------- 1 | TITLE SECOND: DISPLAY STRING 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | 6 | userMsg DB 'Please enter a number: ' 7 | lenUserMsg equ $-userMsg 8 | dispMsg DB 'You have entered: ' 9 | lenDispMsg equ $-dispMsg 10 | 11 | section .bss 12 | num resb 5 13 | section .text 14 | global main 15 | main: 16 | mov eax,4 17 | mov ebx,1 18 | mov ecx, userMsg 19 | mov edx, lenUserMsg 20 | int 80h 21 | 22 | mov eax, 3 23 | mov ebx, 2 24 | mov ecx, num 25 | mov edx, 5 26 | int 80h 27 | mov eax, 4 28 | mov ebx, 1 29 | mov ecx, dispMsg 30 | mov edx, lenDispMsg 31 | int 80h 32 | mov eax, 4 33 | mov ebx, 1 34 | mov ecx, num 35 | mov edx, 5 36 | int 80h 37 | 38 | mov eax, 1 39 | mov ebx, 0 40 | int 80h 41 | MAIN ENDP 42 | END MAIN -------------------------------------------------------------------------------- /Lreader.asm: -------------------------------------------------------------------------------- 1 | .386 2 | .model flat,stdcall 3 | 4 | include windows.inc 5 | include kernel32.inc 6 | include user32.inc 7 | includelib kernel32.lib 8 | includelib user32.lib 9 | .data 10 | stinf STARTUPINFO<> 11 | prinf PROCESS_INFORMATION<> 12 | path DB "Animation3D.exe",0 13 | base dd 0045BFC4H 14 | patch dd 74h 15 | msg db "put the leader in the target folder",0 16 | error db "error",0 17 | .CODE 18 | start 19 | 20 | invoke CreateProcess,addr path,0,0,0,0,CREATE_SUSPENDED,0,0,addr stinf,addr prinf 21 | .if eax==0 22 | invoke MessageBox,NULL,addr msg,NULL,MB_OK 23 | .else 24 | invoke WriteProcessMemory,prinf.hProcess,base1,addr patch1,1,NULL 25 | .if eax==0 26 | invoke MessageBox,NULL,addr error,addr error,MB_OK 27 | invoke TerminateProcess,prinf.hProocess,0 28 | .enif 29 | invoke ResumeThread,prinf.hThread 30 | .endif 31 | invoke ExitProcess,0 32 | end start -------------------------------------------------------------------------------- /oneass.asm: -------------------------------------------------------------------------------- 1 | 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | num DB 5 6 | userMsg DB 'Please enter a number: ' 7 | lenUserMsg equ $-userMsg 8 | dispMsg DB 'You have entered: ' 9 | lenDispMsg equ $-dispMsg 10 | .CODE 11 | MAIN PROC 12 | mov ax,4 13 | mov bx,1 14 | lea dx, userMsg 15 | int 21h 16 | mov dx, lenUserMsg 17 | int 80h 18 | 19 | mov ax, 3 20 | mov bx, 2 21 | lea dx, num 22 | int 21h 23 | mov dx, 5 24 | int 80h 25 | mov ax, 4 26 | mov bx, 1 27 | lea dx, dispMsg 28 | int 21h 29 | mov dx, lenDispMsg 30 | int 80h 31 | mov ax, 4 32 | mov bx, 1 33 | ;mov ecx, num 34 | mov dx, 5 35 | int 80h 36 | 37 | mov ax, 1 38 | mov bx, 0 39 | int 80h 40 | ; return to DOS 41 | MOV AX, 4C00H 42 | INT 21H 43 | MAIN ENDP 44 | END MAIN -------------------------------------------------------------------------------- /scan.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | STRING DB 80 DUP(0) 5 | VOWELS DB 'AEIOU' 6 | CONSONANTS DB 'BCDFGHJKLMNPQRSTVWXYZ' 7 | OUT1 DB 0DH,0AH,'VOWELS= $' 8 | OUT2 DB 'CONSONANTS= $' 9 | VOWELCT DW 0 10 | CONSCT DW 0 11 | .CODE 12 | MAIN PROC 13 | ; initialize DS 14 | MOV AX,@DATA 15 | MOV DS,AX 16 | MOV ES,AX 17 | LEA DX,STRING 18 | CALL READ_STR 19 | MOV SI,DI 20 | CLD 21 | REPEAT: 22 | LODSB 23 | LEA DI,VOWELS 24 | MOV CX ,5 25 | REPNE SCASB 26 | JNE CK_CONST 27 | INC VOWELCT 28 | JMP UNTIL 29 | CK_CONST: 30 | LEA DI,CONSONANTS 31 | MOV CX,21 32 | REPNE SCASB 33 | JNE UNTIL 34 | INC CONSCT 35 | UNTIL: 36 | DEC BX 37 | JNE REPEAT 38 | ;OUTPUT NO OF VOWELS 39 | LEA DX,OUT1 40 | MOV AH ,9 41 | INT 21H 42 | MOV AX,VOWELCT 43 | CALL OUTDEC 44 | ;OUTPUT NO OF CONSONANTS 45 | LEA DX,OUT2 46 | MOV AH ,9 47 | INT 21H 48 | MOV AX,CONSCT 49 | CALL OUTDEC 50 | ;EXIT TO DOS 51 | MOV AH,4CH 52 | INT 21H 53 | MAIN ENDP 54 | INCLUDE DES_NUM.ASM 55 | END MAIN -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Encode.asm: -------------------------------------------------------------------------------- 1 | 2 | TITLE secret message 3 | .MODEL SMALL 4 | .STACK 100H 5 | .DATA 6 | CODE_KEY DB 65 DUP(''),'XQPOGHZBCADEIJUVFMNKLRSTWY' 7 | DB 37 DUP (' ') 8 | DECODE_KEY DB 65 DUP(''),'JHIKLQEFMNTURSDCBVWXOPYAZG' 9 | DB 37 DUP (' ') 10 | CODED DB 80 DUP ('$') 11 | PROMPT DB 'ENTER A MESSAGE :' , 0DH ,0AH , '$' 12 | CRLF DB 0DH , 0AH , '$' 13 | .CODE 14 | MAIN PROC 15 | ; initialize DS 16 | MOV AX,@DATA 17 | MOV DS,AX 18 | ;print user prompt 19 | LEA DX,PROMPT 20 | MOV AH,09H 21 | INT 21H 22 | ;READ AND ENCODE MESSAGE 23 | MOV AH , 1 24 | LEA BX , CODE_KEY 25 | LEA DI , CODED 26 | WHILE_: 27 | INT 21H 28 | CMP AL , 0DH 29 | JE END_WHILE 30 | XLAT 31 | MOV [DI],AL 32 | INC DI 33 | JMP WHILE_ 34 | END_WHILE: 35 | ;GOTO NEW LINE 36 | MOV AH , 9 37 | LEA DX , CRLF 38 | INT 21H 39 | ;PRINT ENCODED MESSAGE 40 | LEA DX,CODED 41 | INT 21H 42 | ;GOTO NEW LINE 43 | LEA DX,CRLF 44 | INT 21H 45 | ;DCODE MESSAGE AND PRINT IT 46 | MOV AH , 2 47 | LEA BX , DECODE_KEY 48 | LEA SI , CODED 49 | WHILE2: 50 | MOV AL , [SI] 51 | CMP AL ,'$' 52 | JE END_WHILE2 53 | XLAT 54 | MOV DL ,AL 55 | INT 21H 56 | INC SI 57 | JMP WHILE2 58 | END_WHILE2: 59 | ;return to DOS 60 | MOV AH,4CH 61 | INT 21H 62 | MAIN ENDP 63 | END MAIN -------------------------------------------------------------------------------- /SECRET.asm: -------------------------------------------------------------------------------- 1 | 2 | TITLE secret message 3 | .MODEL SMALL 4 | .STACK 100H 5 | .DATA 6 | CODE_KEY DB 65 DUP(''),'XQPOGHZBCADEIJUVFMNKLRSTWY' 7 | DB 37 DUP (' ') 8 | DECODE_KEY DB 65 DUP(''),'JHIKLQEFMNTURSDCBVWXOPYAZG' 9 | DB 37 DUP (' ') 10 | CODED DB 80 DUP ('$') 11 | PROMPT DB 'ENTER A MESSAGE :' , 0DH , 0AH , '$' 12 | CRLF DB 0DH , 0AH , '$' 13 | .CODE 14 | MAIN PROC 15 | ; initialize DS 16 | MOV AX,@DATA 17 | MOV DS,AX 18 | ;print user prompt 19 | LEA DX,PROMPT 20 | MOV AH,09H 21 | INT 21H 22 | ;READ AND ENCODE MESSAGE 23 | MOV AH , 1 24 | LEA BX , CODE_KEY 25 | LEA DI , CODED 26 | WHILE_: 27 | INT 21H 28 | CMP AL , 0DH 29 | JE END_WHILE 30 | XLAT 31 | MOV [DI],AL 32 | INC DI 33 | JMP WHILE_ 34 | END_WHILE: 35 | ;GOTO NEW LINE 36 | MOV AH , 9 37 | LEA DX , CRLF 38 | INT 21H 39 | ;PRINT ENCODED MESSAGE 40 | LEA DX,CODED 41 | INT 21H 42 | ;GOTO NEW LINE 43 | LEA DX,CRLF 44 | INT 21H 45 | ;DCODE MESSAGE AND PRINT IT 46 | MOV AH , 2 47 | LEA BX , DECODE_KEY 48 | LEA SI , CODED 49 | WHILE2: 50 | MOV AL , [SI] 51 | CMP AL ,'$' 52 | JE END_WHILE2 53 | XLAT 54 | MOV DL ,AL 55 | INT 21H 56 | INC SI 57 | JMP WHILE2 58 | END_WHILE2: 59 | ;return to DOS 60 | MOV AH,4CH 61 | INT 21H 62 | MAIN ENDP 63 | END MAIN -------------------------------------------------------------------------------- /Encode_message.asm: -------------------------------------------------------------------------------- 1 | 2 | TITLE secret message 3 | .MODEL SMALL 4 | .STACK 100H 5 | .DATA 6 | CODE_KEY DB 65 DUP(''),'XQPOGHZBCADEIJUVFMNKLRSTWY' 7 | DB 37 DUP (' ') 8 | DECODE_KEY DB 65 DUP(''),'JHIKLQEFMNTURSDCBVWXOPYAZG' 9 | DB 37 DUP (' ') 10 | CODED DB 80 DUP ('$') 11 | PROMPT DB 'ENTER A MESSAGE :' , 0DH , 0AH , '$' 12 | CRLF DB 0DH , 0AH , '$' 13 | .CODE 14 | MAIN PROC 15 | ; initialize DS 16 | MOV AX,@DATA 17 | MOV DS,AX 18 | ;print user prompt 19 | LEA DX,PROMPT 20 | MOV AH,09H 21 | INT 21H 22 | ;READ AND ENCODE MESSAGE 23 | MOV AH , 1 24 | LEA BX , CODE_KEY 25 | LEA DI , CODED 26 | WHILE_: 27 | INT 21H 28 | CMP AL , 0DH 29 | JE END_WHILE 30 | XLAT 31 | MOV [DI],AL 32 | INC DI 33 | JMP WHILE_ 34 | END_WHILE: 35 | ;GOTO NEW LINE 36 | MOV AH , 9 37 | LEA DX , CRLF 38 | INT 21H 39 | ;PRINT ENCODED MESSAGE 40 | LEA DX,CODED 41 | INT 21H 42 | ;GOTO NEW LINE 43 | LEA DX,CRLF 44 | INT 21H 45 | ;DCODE MESSAGE AND PRINT IT 46 | MOV AH , 2 47 | LEA BX , DECODE_KEY 48 | LEA SI , CODED 49 | WHILE2: 50 | MOV AL , [SI] 51 | CMP AL ,'$' 52 | JE END_WHILE2 53 | XLAT 54 | MOV DL ,AL 55 | INT 21H 56 | INC SI 57 | JMP WHILE2 58 | END_WHILE2: 59 | ;return to DOS 60 | MOV AH,4CH 61 | INT 21H 62 | MAIN ENDP 63 | END MAIN -------------------------------------------------------------------------------- /TIIM_CH.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | LF EQU 0DH 5 | CR EQU 0AH 6 | PROMPT DB LF,CR,'Enter The Hour(0..23) :$' 7 | MSG_M DB LF,CR,'Enter The Minute(0..59): $' 8 | MSG_S DB LF,CR,'Enter The Second(0..59): $' 9 | MSGSUC DB LF,CR,'Your time is changed.$' 10 | MSGFAIL DB LF,CR,'Your Time Is Not Changed.' 11 | DB LF,CR,'Do You Want To Try Again Y/N? $' 12 | MSGINV DB LF,CR,'Invalid Time...' 13 | DB LF,CR,'Do You Want To Try Again Y/N? $' 14 | HOUR DB '?' 15 | MINUTE DB '?' 16 | .CODE 17 | MAIN PROC 18 | MOV AX,@DATA 19 | MOV DS,AX 20 | begin : 21 | ; DISPLAY PROMPT MESSAGE 22 | MOV AH , 9 23 | LEA DX , prompt 24 | INT 21H 25 | ; Read The Hour 26 | CALL INDEC 27 | MOV HOUR , AL 28 | CMP AL , 23D 29 | JG begin 30 | @minute: 31 | MOV AH , 9 32 | LEA DX , MSG_M 33 | INT 21H 34 | ; Read the Minute 35 | CALL INDEC 36 | CMP AL , 59D 37 | JG @minute 38 | MOV MINUTE , AL 39 | @second : 40 | MOV AH,9 41 | LEA DX , MSG_S 42 | INT 21H 43 | ; Read The Second 44 | CALL INDEC 45 | CMP AL , 59D 46 | JG @second 47 | ; Set Time using Function 2Dh 48 | MOV DH , AL ; DH = Seconds 49 | MOV CL , MINUTE ; CL = Minutes 50 | MOV CH , HOUR ; CH = Hour 51 | MOV AH , 2DH 52 | INT 21H 53 | ;IS DATE CHANGED ? 54 | CMP AL , 00H 55 | JNE AGAIN 56 | MOV AH , 9H 57 | LEA DX , MSGSUC 58 | INT 21H 59 | JMP EXIT 60 | again: 61 | MOV AH , 9H 62 | LEA DX , MSGFAIL 63 | INT 21H 64 | answer: ;ANSWER Y/N 65 | MOV AH , 1H 66 | INT 21H 67 | CMP AL , 'Y' 68 | JE begin 69 | CMP AL , 'y' 70 | JE begin 71 | CMP AL , 'n' 72 | JE EXIT 73 | CMP AL , 'N' 74 | JE EXIT 75 | JMP ANSWER 76 | exit: 77 | MOV AH , 4CH 78 | INT 21H 79 | MAIN ENDP 80 | include DES_NUM.asm 81 | END MAIN -------------------------------------------------------------------------------- /HYS_CH.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | LF EQU 0DH 5 | CR EQU 0AH 6 | prompt DB LF,CR,'Enter The Day : $' 7 | MSG_M DB LF,CR,'Enter The Month: $' 8 | MSG_Y DB LF,CR,'Enter The Year(1980..2099) : $' 9 | MSGSUC DB LF,CR,'Your Date Is Changed.$' 10 | MSGFAIL DB LF,CR,'Your Date Is Not Changed.' 11 | DB LF,CR,'Do You Want To Try Again Y/N? $' 12 | MSGINV DB LF,CR,'Invalid Date...' 13 | DB LF,CR,'Do You Want To Try Again Y/N? $' 14 | year DW '?' 15 | month DB '?' 16 | day DB '?' 17 | .CODE 18 | MAIN PROC 19 | MOV AX,@DATA 20 | MOV DS,AX 21 | begin : 22 | ; Display Prompy Message 23 | MOV AH,9 24 | LEA DX , prompt 25 | INT 21H 26 | ; Read the Day 27 | CALL INDEC 28 | CMP AL , 1 29 | JL begin 30 | CMP AL , 31D 31 | JG begin 32 | MOV DAY , AL 33 | @month : 34 | MOV AH , 9 35 | LEA DX , MSG_M 36 | INT 21H 37 | ; Read the Month 38 | CALL INDEC 39 | CMP AL , 1 40 | JL @MONTH 41 | CMP AL , 31D 42 | JG @MONTH 43 | CALL INDEC 44 | MOV MONTH , AL 45 | @YEAR : 46 | MOV AH,9 47 | LEA DX , MSG_Y 48 | INT 21H 49 | ; Read the Year 50 | CALL INDEC 51 | CMP AX , 1980D 52 | JL @YEAR 53 | CMP CX , 2099D 54 | JG @YEAR 55 | ; Set Date using Function 2Bh 56 | MOV CX , AX ; CX = The Year 57 | MOV DH , MONTH ; DH = The Month 58 | MOV DL , DAY ; DL = The Day 59 | MOV AH , 2BH 60 | INT 21H 61 | ;IS DATE CHANGED ? 62 | CMP AL , 00H 63 | JNE AGAIN 64 | MOV AH , 9H 65 | LEA DX , MSGSUC 66 | INT 21H 67 | JMP EXIT 68 | AGAIN: 69 | MOV AH , 9H 70 | LEA DX , MSGFAIL 71 | INT 21H 72 | answer: ;ANSWER Y/N 73 | MOV AH , 1H 74 | INT 21H 75 | CMP AL , 'Y' 76 | JE begin 77 | CMP AL , 'y' 78 | JE begin 79 | CMP AL , 'n' 80 | JE EXIT 81 | CMP AL , 'N' 82 | JE EXIT 83 | JMP ANSWER 84 | exit: 85 | MOV AH , 4CH 86 | INT 21H 87 | MAIN ENDP 88 | include DES_NUM.asm 89 | END MAIN -------------------------------------------------------------------------------- /makeit.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | : ------------------------------- 3 | : if resources exist, build them 4 | : ------------------------------- 5 | if not exist rsrc.rc goto over1 6 | \masm32\BIN\Rc.exe /v rsrc.rc 7 | \masm32\BIN\Cvtres.exe /machine:ix86 rsrc.res 8 | :over1 9 | 10 | if exist %1.obj del ASCCI.obj 11 | if exist %1.exe del ASCCI.exe 12 | 13 | : ----------------------------------------- 14 | : assemble template.asm into an OBJ file 15 | : ----------------------------------------- 16 | \masm32\BIN\Ml.exe /c /coff ASCCI.asm 17 | if errorlevel 1 goto errasm 18 | 19 | if not exist rsrc.obj goto nores 20 | 21 | : -------------------------------------------------- 22 | : link the main OBJ file with the resource OBJ file 23 | : -------------------------------------------------- 24 | \masm32\BIN\Link.exe /SUBSYSTEM:WINDOWS ASCCI.obj rsrc.obj 25 | if errorlevel 1 goto errlink 26 | dir ASCCI.* 27 | goto TheEnd 28 | 29 | :nores 30 | : ----------------------- 31 | : link the main OBJ file 32 | : ----------------------- 33 | \masm32\BIN\Link.exe /SUBSYSTEM:WINDOWS ASCCI.obj 34 | if errorlevel 1 goto errlink 35 | dir ASCCI.* 36 | goto TheEnd 37 | 38 | :errlink 39 | : ---------------------------------------------------- 40 | : display message if there is an error during linking 41 | : ---------------------------------------------------- 42 | echo. 43 | echo There has been an error while linking this project. 44 | echo. 45 | goto TheEnd 46 | 47 | :errasm 48 | : ----------------------------------------------------- 49 | : display message if there is an error during assembly 50 | : ----------------------------------------------------- 51 | echo. 52 | echo There has been an error while assembling this project. 53 | echo. 54 | goto TheEnd 55 | 56 | :TheEnd 57 | 58 | pause 59 | -------------------------------------------------------------------------------- /desimall.asm: -------------------------------------------------------------------------------- 1 | OUTDEC PROC 2 | ; Prints AX as a signed decimal integer 3 | ; input : AX 4 | ; Output : None 5 | PUSH AX 6 | PUSH BX 7 | PUSH CX 8 | PUSH DX 9 | ;if AX < 0 10 | OR AX , AX 11 | JGE @END_IF1 12 | ;Then 13 | PUSH AX 14 | MOV DL , '-' 15 | MOV AH,2 16 | INT 21H 17 | POP AX 18 | NEG AX 19 | @END_IF1: 20 | XOR CX , CX ;Get Decimal Digit 21 | MOV BX , 10D 22 | @REPEAT1: 23 | XOR DX , DX 24 | DIV BX 25 | PUSH DX 26 | INC CX 27 | OR AX , AX 28 | JNE @REPEAT1 29 | ;Convert Digits to characters and print them 30 | MOV AH , 2 31 | @PRINT_LOOP: 32 | POP DX 33 | OR DL , 30H 34 | INT 21H 35 | LOOP @PRINT_LOOP 36 | POP DX 37 | POP CX 38 | POP BX 39 | POP AX 40 | RET 41 | OUTDEC ENDP 42 | INDEC PROC 43 | ; Reads a number in range -32768 to 32767 44 | ; input : None 45 | ; Output : AX = Binary equivalent Of Number 46 | PUSH BX 47 | PUSH CX 48 | PUSH DX 49 | @BEGIN: MOV AH , 2 50 | MOV DL , '?' 51 | INT 21H 52 | XOR BX , BX ; total =0 53 | XOR CX , CX 54 | ;Read A Character 55 | MOV AH , 1 56 | INT 21H 57 | ;Case Char of 58 | CMP AL ,'-' 59 | JE @MINUS 60 | CMP AL , '+' 61 | JE @PLUS 62 | JMP @REPEAT2 63 | @MINUS: MOV CX , 1 64 | @PLUS: INT 21H 65 | @REPEAT2:;If Character Between 0 AND 9 66 | CMP AL , '0' 67 | JNGE @NOT_DIGIT 68 | CMP AL , '9' 69 | JNLE @NOT_DIGIT 70 | ; Convert Character To Digit 71 | AND AX ,000FH 72 | PUSH AX 73 | ; TOTAL = TOTAL * 10 + DIGIT 74 | MOV AX , 10 ;Get 10 75 | MUL BX ;AX = TOTAL * 10 76 | POP BX ;RETRIEVE DIGIT 77 | ADD BX , AX ; TOTAL = 78 | ;Read A Character 79 | MOV AH , 1 80 | INT 21H 81 | CMP AL,0DH 82 | JNE @REPEAT2 83 | MOV AX , BX 84 | OR CX , CX 85 | JE @EXIT 86 | NEG AX 87 | @EXIT: POP DX 88 | POP CX 89 | POP BX 90 | RET 91 | @NOT_DIGIT: 92 | MOV AH , 2 93 | MOV DL , 0DH 94 | INT 21H 95 | MOV DL , 0AH 96 | INT 21H 97 | JMP @BEGIN 98 | INDEC ENDP -------------------------------------------------------------------------------- /DATE_K.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | CR EQU 0DH 5 | LF EQU 0AH 6 | MSG DB 'GET SYSTEM DATE :INT 21H FUNCTION 2A',CR,LF 7 | DB 'YEAR :$' 8 | YEAR DW '?' 9 | MSG2 DB CR,LF,'MONTH :$' 10 | MONTH DB '?' 11 | MSG3 DB CR,LF,'DAY :$' 12 | DAY DB '?' 13 | MSG4 DB CR,LF,'DAY OF WEEK:','$' 14 | Dweek DB '?' 15 | SUN DB 'Sunday $' 16 | MON DB 'Monday $' 17 | TUES DB 'Tuesday $' 18 | WEDN DB 'Wednesday $' 19 | THURS DB 'Thursday $' 20 | FRID DB 'Friday $' 21 | SAT DB 'Saturday $' 22 | .CODE 23 | MAIN PROC 24 | ;initialization 25 | MOV AX,@DATA 26 | MOV DS,AX 27 | ;get system date 28 | MOV AH,2AH 29 | INT 21H 30 | ;assign values of date 31 | MOV YEAR,CX 32 | MOV MONTH,DH 33 | MOV DAY,DL 34 | MOV Dweek,AL 35 | MOV DL,dWEEK 36 | MOV AL,2H 37 | INT 21H 38 | ;display values of date 39 | LEA DX,MSG 40 | MOV AH,09H 41 | INT 21H 42 | ;year 43 | MOV AX,CX 44 | CALL OUTDEC 45 | ;month 46 | LEA DX,MSG2 47 | MOV AH,09H 48 | INT 21H 49 | XOR AX,AX ;clear AH and AL 50 | MOV AL,MONTH 51 | CALL OUTDEC 52 | ;day 53 | LEA DX,MSG3 54 | MOV AH,09H 55 | INT 21H 56 | XOR AX,AX 57 | MOV AL,DAY 58 | CALL OUTDEC 59 | ; display the equivalent day of week 60 | LEA DX,MSG4 61 | MOV AH,09H 62 | INT 21H 63 | CMP Dweek,0 64 | JE ZERO 65 | CMP Dweek,1 66 | JE ONE 67 | CMP Dweek,2 68 | JE TWO 69 | CMP Dweek,3 70 | JE THREE 71 | CMP Dweek,4 72 | JE FOUR 73 | CMP Dweek,5 74 | JE FIVE 75 | CMP Dweek,6 76 | JE SIX 77 | JMP END_CASE 78 | ZERO: 79 | LEA DX,SUN 80 | JMP DISPLAY_ 81 | ONE: 82 | LEA DX,MON 83 | JMP DISPLAY_ 84 | TWO: 85 | LEA DX,TUES 86 | JMP DISPLAY_ 87 | THREE: 88 | LEA DX,WEDN 89 | JMP DISPLAY_ 90 | FOUR: 91 | LEA DX,THURS 92 | JMP DISPLAY_ 93 | FIVE: 94 | LEA DX,FRID 95 | JMP DISPLAY_ 96 | SIX: 97 | LEA DX,SAT 98 | DISPLAY_: 99 | MOV AH,09H 100 | INT 21H 101 | END_CASE: 102 | MOV AH,4CH 103 | INT 21H 104 | MAIN ENDP 105 | Include DES_NUM.asm 106 | END MAIN -------------------------------------------------------------------------------- /DATE_KNOWN.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | CR EQU 0DH 5 | LF EQU 0AH 6 | MSG DB 'GET SYSTEM DATE :INT 21H FUNCTION 2A',CR,LF 7 | DB 'YEAR :$' 8 | YEAR DW '?' 9 | MSG2 DB CR,LF,'MONTH :$' 10 | MONTH DB '?' 11 | MSG3 DB CR,LF,'DAY :$' 12 | DAY DB '?' 13 | MSG4 DB CR,LF,'DAY OF WEEK:','$' 14 | Dweek DB '?' 15 | SUN DB 'Sunday $' 16 | MON DB 'Monday $' 17 | TUES DB 'Tuesday $' 18 | WEDN DB 'Wednesday $' 19 | THURS DB 'Thursday $' 20 | FRID DB 'Friday $' 21 | SAT DB 'Saturday $' 22 | .CODE 23 | MAIN PROC 24 | ;initialization 25 | MOV AX,@DATA 26 | MOV DS,AX 27 | ;get system date 28 | MOV AH,2AH 29 | INT 21H 30 | ;assign values of date 31 | MOV YEAR,CX 32 | MOV MONTH,DH 33 | MOV DAY,DL 34 | MOV Dweek,AL 35 | MOV DL,dWEEK 36 | MOV AL,2H 37 | INT 21H 38 | ;display values of date 39 | LEA DX,MSG 40 | MOV AH,09H 41 | INT 21H 42 | ;year 43 | MOV AX,CX 44 | CALL OUTDEC 45 | ;month 46 | LEA DX,MSG2 47 | MOV AH,09H 48 | INT 21H 49 | XOR AX,AX ;clear AH and AL 50 | MOV AL,MONTH 51 | CALL OUTDEC 52 | ;day 53 | LEA DX,MSG3 54 | MOV AH,09H 55 | INT 21H 56 | XOR AX,AX 57 | MOV AL,DAY 58 | CALL OUTDEC 59 | ; display the equivalent day of week 60 | LEA DX,MSG4 61 | MOV AH,09H 62 | INT 21H 63 | CMP Dweek,0 64 | JE ZERO 65 | CMP Dweek,1 66 | JE ONE 67 | CMP Dweek,2 68 | JE TWO 69 | CMP Dweek,3 70 | JE THREE 71 | CMP Dweek,4 72 | JE FOUR 73 | CMP Dweek,5 74 | JE FIVE 75 | CMP Dweek,6 76 | JE SIX 77 | JMP END_CASE 78 | ZERO: 79 | LEA DX,SUN 80 | JMP DISPLAY_ 81 | ONE: 82 | LEA DX,MON 83 | JMP DISPLAY_ 84 | TWO: 85 | LEA DX,TUES 86 | JMP DISPLAY_ 87 | THREE: 88 | LEA DX,WEDN 89 | JMP DISPLAY_ 90 | FOUR: 91 | LEA DX,THURS 92 | JMP DISPLAY_ 93 | FIVE: 94 | LEA DX,FRID 95 | JMP DISPLAY_ 96 | SIX: 97 | LEA DX,SAT 98 | DISPLAY_: 99 | MOV AH,09H 100 | INT 21H 101 | END_CASE: 102 | MOV AH,4CH 103 | INT 21H 104 | MAIN ENDP 105 | Include DES_NUM.asm 106 | END MAIN -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Group-of-Assembly-Programs-Samples--8086-85-Processors-family 2 | 3 | 4 |

5 | 6 |

7 | 8 |
9 | • About 10 |
11 | • How To Use 12 |
13 | • License 14 |
15 | • Related 16 |
17 | • License 18 |
19 | 20 | 21 |
22 | 23 | 24 |
25 | 26 | ## About 27 | 28 | this is a larg group of assembly programs compiled and ready to use with both Code and Exe files .. 29 | 30 | you will find each program with three files at least..it is as follows : 31 | 32 | .asm(code file), .obj(object file), .exe(exutable file).. 33 | 34 | 35 | all these programs are coded and compiled using [GUI Turbo Assembler (TASM)](https://sourceforge.net/projects/guitasm8086/). 36 | 37 | 38 | ## How To Use 39 | 40 | To clone and edit these programs, you'll need [Git](https://git-scm.com) and [GUI Turbo Assembler (TASM)](https://sourceforge.net/projects/guitasm8086/). 41 | 42 | 43 | -From your command line: 44 | 45 | ```bash 46 | # Clone this repository 47 | $ git clone https://github.com/Mohamed-94/Group-of-Assembly-Programs-Samples--8086-85-Processors-family- 48 | 49 | # Go into the repository 50 | $ cd Group-of-Assembly-Programs-Samples--8086-85-Processors-family- 51 | 52 | ``` 53 | 54 | *Note: If you're using Linux Bash for Windows, [see this guide](https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/) or use `node` from the command prompt. 55 | 56 | ## Credit: 57 | a lot of these programms had been written with the help of an old Arabian book, you can find it [here](https://www.kutub.info/library/book/2549) 58 | 59 | ## Related 60 | 61 | - [Mega-Number](https://github.com/Mohamed-94/Mega-Number) - Mega Number V.1.0 Desktop app. 62 | 63 | 64 | ## You may also like... 65 | 66 | - [Super Calculator](https://github.com/Mohamed-94/Super-Calculator_Cpp_CommandLine) - C++ CommandLine 67 | - [Dll for SQL Connection](https://github.com/Mohamed-94/DLL-for-SQL-Connection) - A Dll library for sql parsing. 68 | 69 | ## License 70 | 71 | MIT 72 | 73 | --- 74 | 75 | > GitHub [@Mohamed-94](https://github.com/Mohamed-94)  ·  76 | 77 | 78 | -------------------------------------------------------------------------------- /sun.asm: -------------------------------------------------------------------------------- 1 | TITLE SUN 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | CR EQU 0DH 6 | LF EQU 0AH 7 | PROMPT DB 'TYPE A LINE OF TEXT',CR,LF,'$' 8 | NOCAP_MSG DB CR,LF,'NO CAPITALS $' 9 | CAP_MSG DB CR,LF,'FIRST CAPITAL =' 10 | FIRST DB ']$' 11 | DB ' LAST CAPITAL = ' 12 | LAST DB '@ $' 13 | .CODE 14 | MAIN PROC 15 | ; initialize DS 16 | MOV AX,@DATA 17 | MOV DS,AX 18 | ;display opening message 19 | LEA DX,prompt 20 | MOV AH,09H 21 | INT 21H 22 | ;read and process a line of text 23 | MOV AH,01H 24 | INT 21H 25 | WHILE_: 26 | CMP AL,CR 27 | JE END_WHILE 28 | ;if char is capital 29 | CMP AL,'A' 30 | JNGE END_IF 31 | CMP AL,'Z' 32 | JNLE END_IF 33 | ; if character precede first capital 34 | CMP AL,FIRST 35 | JNL CHECK_LAST 36 | MOV FIRST,AL 37 | CHECK_LAST: 38 | ; if character follow last capital 39 | CMP AL,LAST 40 | JNG END_IF 41 | MOV LAST,AL 42 | END_IF: 43 | INT 21H 44 | JMP WHILE_ 45 | END_WHILE: 46 | MOV AH,9 47 | ;if no capital were typed 48 | CMP FIRST,']' 49 | JNE CAPS 50 | LEA DX,NOCAP_MSG 51 | JMP DISPLAY 52 | CAPS: 53 | LEA DX,CAP_MSG 54 | DISPLAY: 55 | ;INT 21H 56 | ;exit to DOS 57 | MOV AH,4CH 58 | INT 21H 59 | MAIN ENDP 60 | END MAIN 61 | 62 | ;MOV AH,1 63 | ;REPEAT: 64 | ;INT 21H 65 | ;CMP AL ,' 66 | ;JNE REPEAT 67 | 68 | ;MOV CX,80 69 | ;MOV AH , 2 70 | ;MOV DL , *' 71 | ;Top: INT 21h 72 | ;LOOP top 73 | 74 | ;MOV AH , 1  75 | ;INT 21h 76 | ;CMP AL , y' 77 | ;JE then 78 | ;CMP AL ,Y' 79 | ;JE Then 80 | ;JMP else_ 81 | ;Then: MOV DL,AL 82 | ;MOV AH , 2 83 | ;INT 21h 84 | ;JMP End_if 85 | ;else: 86 | ;MOV AH ,4ch 87 | ;INT 21h 88 | ;End_if: 89 | 90 | 91 | ;MOV AH , 1  92 | ;INT 21h 93 | ;CMP AL , A' 94 | ;JNGE End_IF 95 | ;CMP AL , Z' 96 | ;JNLE End_IF 97 | ;MOV DL , AL 98 | ;MOV AH , 2 99 | ;INT 21h 100 | ;End_IF: 101 | 102 | 103 | ;CMP AL , 1 104 | ;JE ODD 105 | ;CMP AL , 3 106 | ;JE ODD 107 | ;CMP AL , 2 108 | ;JE EVEN 109 | ;CMP AL , 4 110 | ;JE EVEN 111 | ;JMP END_CASE 112 | ;ODD: MOV DL , O' 113 | ;JMP DISPLAY 114 | ;EVEN: MOV DL , E' 115 | ;DISPLAY: MOV AH ,2 116 | ;INT 21H 117 | ;END_CASE: 118 | 119 | 120 | ;MOV AX,@DATA 121 | ;MOV DS,AX 122 | ;LEA DX,MSG 123 | ;MOV AH,2 124 | ;MOV CX,256 125 | ;MOV DL,0 126 | ;Print_Loop: 127 | ;INT 21H 128 | ;INC DL 129 | ;DEC CX 130 | ;JNZ PRINT_LOOP 131 | ;MOV AH,4CH 132 | ;INT 21H 133 | ;MAIN ENDP 134 | ;END MAIN 135 | -------------------------------------------------------------------------------- /Compare.asm: -------------------------------------------------------------------------------- 1 | 2 | .MODEL SMALL 3 | .STACK 100H 4 | .DATA 5 | printCh dw '?' 6 | MSGS DB 0DH,0AH,'Start Time is $' 7 | Hs DB '?' 8 | Ms DB '?' 9 | Scs DB '?' 10 | HSs DB '?' 11 | MSGe DB 0DH,0AH,'Finish Time is $' 12 | He DB '?' 13 | Me DB '?' 14 | Se DB '?' 15 | HSe DB '?' 16 | MSGR DB 0DH,0AH,'Run Time is $' 17 | .CODE 18 | MAIN PROC 19 | ;initialization 20 | MOV AX , @DATA 21 | MOV DS , AX 22 | ; Get start time 23 | MOV AH,2CH 24 | INT 21H 25 | MOV Hs , CH 26 | MOV Ms , CL 27 | MOV Scs , DH 28 | MOV HSs , DL 29 | MOV AX,0B800h ;color active display 30 | page 31 | MOV DS,AX 32 | MOV AH,17H 33 | MOV BX,9 34 | DISPLAY_ALL: 35 | MOV AL,41h 36 | AGAIN: 37 | MOV DI,0 38 | MOV CX,2000d 39 | ;fill active display page 40 | FILL_BUF: 41 | MOV [DI],AX 42 | ADD DI,2 43 | LOOP FILL_BUF ;loop until done 44 | ADD AX,01H 45 | CMP AL,'Z' 46 | JLE AGAIN 47 | DEC BX 48 | JNZ DISPLAY_ALL 49 | ; Get finish time 50 | MOV AX , @DATA 51 | MOV DS , AX 52 | MOV AH,2CH 53 | INT 21H 54 | MOV He , CH 55 | MOV Me , CL 56 | MOV Se , DH 57 | MOV HSe , DL 58 | ; display start time 59 | MOV AH , 9 60 | LEA DX , MSGs 61 | INT 21H 62 | XOR AX , AX 63 | MOV AL , Hs 64 | CALL OUTDEC 65 | MOV DL , ':' 66 | MOV AH , 2 67 | INT 21H 68 | XOR AX , AX 69 | MOV AL , Ms 70 | CALL OUTDEC 71 | MOV DL , ':' 72 | MOV AH , 2 73 | INT 21H 74 | ; 75 | XOR AX , AX 76 | MOV AL , Scs 77 | CALL OUTDEC 78 | MOV DL , '.' 79 | MOV AH , 2 80 | INT 21H 81 | ; 82 | XOR AX , AX 83 | MOV AL , HSs 84 | CALL OUTDEC 85 | MOV DL , ':' 86 | MOV AH , 2 87 | INT 21H 88 | ; display finish time 89 | MOV AH , 9 90 | LEA DX , MSGe 91 | INT 21H 92 | XOR AX , AX 93 | MOV AL , He 94 | CALL OUTDEC 95 | MOV DL , ':' 96 | MOV AH , 2 97 | INT 21H 98 | ; 99 | XOR AX , AX 100 | MOV AL , Me 101 | CALL OUTDEC 102 | MOV DL , ':' 103 | MOV AH , 2 104 | INT 21H 105 | ; 106 | XOR AX , AX 107 | MOV AL , Se 108 | CALL OUTDEC 109 | MOV DL , '.' 110 | MOV AH , 2 111 | INT 21H 112 | ; 113 | XOR AX , AX 114 | MOV AL , Hse 115 | CALL OUTDEC 116 | MOV DL , ':' 117 | MOV AH , 2 118 | INT 21H 119 | ; display run time 120 | MOV AH , 9 121 | LEA DX , MSGR 122 | INT 21H 123 | XOR AX , AX 124 | MOV AL , He 125 | SUB AL , Hs 126 | CALL OUTDEC 127 | MOV DL , ':' 128 | MOV AH , 2 129 | INT 21H 130 | XOR AX , AX 131 | MOV AL , Me 132 | SUB AL , Ms 133 | CALL OUTDEC 134 | MOV DL , ':' 135 | MOV AH , 2 136 | INT 21H 137 | XOR AX , AX 138 | MOV AL , Se 139 | SUB AL , Scs 140 | CALL OUTDEC 141 | MOV DL , '.' 142 | MOV AH , 2 143 | INT 21H 144 | XOR AX , AX 145 | MOV AL , HSe 146 | SUB AL , HSs 147 | CALL OUTDEC 148 | ; dos exit 149 | MOV AH,4CH 150 | INT 21H 151 | MAIN ENDP 152 | Include DES_NUM.asm 153 | END MAIN -------------------------------------------------------------------------------- /DES_NUM.asm: -------------------------------------------------------------------------------- 1 | .MODEL SMALL 2 | .STACK 100H 3 | .DATA 4 | .CODE 5 | OUTDEC PROC 6 | ; Prints AX as a signed decimal integer 7 | ; input : AX 8 | ; Output : None 9 | PUSH AX 10 | PUSH BX 11 | PUSH CX 12 | PUSH DX 13 | ;if AX < 0 14 | OR AX , AX 15 | JGE @END_IF1 16 | ;Then 17 | PUSH AX 18 | MOV DL , '-' 19 | MOV AH,2 20 | INT 21H 21 | POP AX 22 | NEG AX 23 | @END_IF1: 24 | XOR CX , CX ;Get Decimal Digit 25 | MOV BX , 10D 26 | @REPEAT1: 27 | XOR DX , DX 28 | DIV BX 29 | PUSH DX 30 | INC CX 31 | OR AX , AX 32 | JNE @REPEAT1 33 | ;Convert Digits to characters and print them 34 | MOV AH , 2 35 | @PRINT_LOOP: 36 | POP DX 37 | OR DL , 30H 38 | INT 21H 39 | LOOP @PRINT_LOOP 40 | POP DX 41 | POP CX 42 | POP BX 43 | POP AX 44 | RET 45 | OUTDEC ENDP 46 | INDEC PROC 47 | ; Reads a number in range -32768 to 32767 48 | ; input : None 49 | ; Output : AX = Binary equivalent Of Number 50 | PUSH BX 51 | PUSH CX 52 | PUSH DX 53 | @BEGIN: MOV AH , 2 54 | MOV DL , '?' 55 | INT 21H 56 | XOR BX , BX ; total =0 57 | XOR CX , CX 58 | ;Read A Character 59 | MOV AH , 1 60 | INT 21H 61 | ;Case Char of 62 | CMP AL ,'-' 63 | JE @MINUS 64 | CMP AL , '+' 65 | JE @PLUS 66 | JMP @REPEAT2 67 | @MINUS: MOV CX , 1 68 | @PLUS: INT 21H 69 | @REPEAT2:;If Character Between 0 AND 9 70 | CMP AL , '0' 71 | JNGE @NOT_DIGIT 72 | CMP AL , '9' 73 | JNLE @NOT_DIGIT 74 | ; Convert Character To Digit 75 | AND AX ,000FH 76 | PUSH AX 77 | ; TOTAL = TOTAL * 10 + DIGIT 78 | MOV AX , 10 ;Get 10 79 | MUL BX ;AX = TOTAL * 10 80 | POP BX ;RETRIEVE DIGIT 81 | ADD BX , AX ; TOTAL = 82 | ;Read A Character 83 | MOV AH , 1 84 | INT 21H 85 | CMP AL,0DH 86 | JNE @REPEAT2 87 | MOV AX , BX 88 | OR CX , CX 89 | JE @EXIT 90 | NEG AX 91 | @EXIT: POP DX 92 | POP CX 93 | POP BX 94 | RET 95 | @NOT_DIGIT: 96 | MOV AH , 2 97 | MOV DL , 0DH 98 | INT 21H 99 | MOV DL , 0AH 100 | INT 21H 101 | JMP @BEGIN 102 | INDEC ENDP 103 | SELECT PROC 104 | ;SORTS A BYTE ARRAY BY THE 105 | ;SELECTSORT METHOD 106 | ;INPUTS:SI= ARRAY OFFSET ADDRESS 107 | ; BX=NUMBER OF ELEMENTS 108 | ;OUTPUTS:SI=OFFSET OF SORTED ARRAY 109 | ;USES:SWAP 110 | PUSH BX 111 | PUSH CX 112 | PUSH DX 113 | PUSH SI 114 | DEC BX 115 | JE END_SORT 116 | MOV DX , SI 117 | SORT_LOOP: 118 | MOV SI , DX 119 | MOV CX , BX 120 | MOV DI , SI 121 | MOV AL , [DI] 122 | FIND_BIG: 123 | INC SI 124 | CMP [SI], AL 125 | JNG NEXT 126 | MOV DI , SI 127 | MOV AL , [DI] 128 | NEXT: 129 | LOOP FIND_BIG 130 | CALL SWAP 131 | DEC BX 132 | JNE SORT_LOOP 133 | END_SORT: 134 | PUSH SI 135 | PUSH DX 136 | PUSH CX 137 | PUSH BX 138 | SELECT ENDP 139 | SWAP PROC 140 | ;INPUT: SI=ONE ELEMENT 141 | ; DI=OTHER ELEMENT 142 | ;OUTPUT:EXCHANGED ELEMENTS 143 | PUSH AX 144 | MOV AL , [SI] 145 | XCHG AL , [DI] 146 | MOV [SI] , AL 147 | POP AX 148 | RET 149 | SWAP ENDP 150 | MULTIPLY PROC 151 | PUSH AX 152 | PUSH BX 153 | XOR DX ,DX 154 | JNZ REPEAT_A 155 | TEST BX ,1 156 | JZ END_IF 157 | ADD DX ,AX 158 | END_IF: 159 | SHL AX ,1 160 | SHR BX ,1 161 | REPEAT_A: 162 | POP BX 163 | POP AX 164 | RET 165 | MULTIPLY ENDP 166 | READ_STR PROC NEAR 167 | ;READS AND STORES A STRING 168 | ;INPUT: DI ODFFSET OF THE STRING 169 | ;OUTPUT: DI OFFSET OF THE STRING 170 | ; BX=NUMBER OF CHARACTERS 171 | PUSH DX 172 | PUSH DI 173 | CLD 174 | XOR BX , BX 175 | MOV AH , 1 176 | INT 21H 177 | WHILE1: 178 | CMP AL , 0DH 179 | JE END_WHILE1 180 | ;IF CHARACTER IS BACHSPACE 181 | CMP AL , 8H 182 | JNE ELSE1 183 | DEC DI 184 | DEC BX 185 | JMP READ 186 | ELSE1: 187 | STOSB 188 | INC BX 189 | READ: 190 | INT 21H 191 | JMP WHILE1 192 | END_WHILE1: 193 | POP DI 194 | POP AX 195 | RET 196 | READ_STR ENDP --------------------------------------------------------------------------------