feat: added more examples · leonhad/asm-samples@fddeb07 · GitHub
Skip to content

Commit fddeb07

Browse files
committed
feat: added more examples
1 parent 52105ba commit fddeb07

5 files changed

Lines changed: 144 additions & 7 deletions

File tree

‎BOOT/DIV1.ASM‎

Lines changed: 31 additions & 0 deletions

‎BOOT/LOGICAL1.ASM‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
org 0x0100
2+
start:
3+
mov al,0x32 ; Load register AL with 0x32 (50 decimal)
4+
and al,0x0F ; Logical AND AL with 0x0F
5+
; and, or, xor
6+
; not is a single register
7+
; neg AL is AL = -AL
8+
9+
add al,0x30 ; Convert to ASCII digit
10+
call display_letter
11+
12+
int 0x20
13+
14+
; Display letter contained in AL (ASCII code)
15+
display_letter:
16+
push ax
17+
push bx
18+
push cx
19+
push dx
20+
push si
21+
push di
22+
23+
mov ah,0x0E ; Load AH with code for terminal output
24+
mov bx,0x000F ; Load BH page zero and BL color (graphic mode)
25+
int 0x10 ; Call the BIOS for displaying one letter
26+
27+
pop di
28+
pop si
29+
pop dx
30+
pop cx
31+
pop bx
32+
pop ax
33+
ret ; Return to the caller

‎BOOT/MUL1.ASM‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
org 0x0100
2+
start:
3+
mov al,0x03 ; Load register AL with 0x03
4+
mov cl,0x02 ; Load register CL with 0x02
5+
mul cl ; Multiply AL by CL, result into AX
6+
7+
add al,0x30 ; Convert to ASCII digit
8+
call display_letter
9+
10+
int 0x20
11+
12+
; Display letter contained in AL (ASCII code)
13+
display_letter:
14+
push ax
15+
push bx
16+
push cx
17+
push dx
18+
push si
19+
push di
20+
21+
mov ah,0x0E ; Load AH with code for terminal output
22+
mov bx,0x000F ; Load BH page zero and BL color (graphic mode)
23+
int 0x10 ; Call the BIOS for displaying one letter
24+
25+
pop di
26+
pop si
27+
pop dx
28+
pop cx
29+
pop bx
30+
pop ax
31+
ret ; Return to the caller

‎BOOT/Makefile‎

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,29 @@
1-
all: FIRST.COM SECOND.COM ADD1.COM SUB1.COM
1+
all: FIRST.COM SECOND.COM ADD1.COM SUB1.COM MUL1.COM DIV1.COM SHIFT1.COM LOGICAL1.COM
22

33
clean:
4-
DEL *.COM
5-
DEL *.LST
4+
del *.COM
5+
del *.LST
66

77
FIRST.COM: FIRST.ASM
8-
NASM -f bin FIRST.ASM -o FIRST.COM -l FIRST.LST
8+
nasm -f bin FIRST.ASM -o FIRST.COM -l FIRST.LST
99

1010
SECOND.COM: SECOND.ASM
11-
NASM -f bin SECOND.ASM -o SECOND.COM -l SECOND.LST
11+
nasm -f bin SECOND.ASM -o SECOND.COM -l SECOND.LST
1212

1313
ADD1.COM: ADD1.ASM
14-
NASM -f bin ADD1.ASM -o ADD1.COM -l ADD1.LST
14+
nasm -f bin ADD1.ASM -o ADD1.COM -l ADD1.LST
1515

1616
SUB1.COM: SUB1.ASM
17-
NASM -f bin SUB1.ASM -o SUB1.COM -l SUB1.LST
17+
nasm -f bin SUB1.ASM -o SUB1.COM -l SUB1.LST
18+
19+
MUL1.COM: MUL1.ASM
20+
nasm -f bin MUL1.ASM -o MUL1.COM -l MUL1.LST
21+
22+
DIV1.COM: DIV1.ASM
23+
nasm -f bin DIV1.ASM -o DIV1.COM -l DIV1.LST
24+
25+
SHIFT1.COM: SHIFT1.ASM
26+
nasm -f bin SHIFT1.ASM -o SHIFT1.COM -l SHIFT1.LST
27+
28+
LOGICAL1.COM: LOGICAL1.ASM
29+
nasm -f bin LOGICAL1.ASM -o LOGICAL1.COM -l LOGICAL1.LST

‎BOOT/SHIFT1.ASM‎

Lines changed: 30 additions & 0 deletions

0 commit comments

Comments
 (0)