├── 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 7t(
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
--------------------------------------------------------------------------------