Added strcmp function

This commit is contained in:
Xnoe 2021-08-28 07:55:26 +01:00
parent ba2db3a84b
commit ef03c94f13
Signed by: xnoe
GPG Key ID: 45AC398F44F0DAFE

View File

@ -1,20 +1,34 @@
sect2:
mov ax, 2000h
mov ds, ax
mov si, msg
push msg
call print
mov si, msg2
push msg2
call print
push 13
push msg
push msg
call strcmp
cmp ax, 1
jne _ne
push msg_same
call print
_ne:
jmp $
data:
msg db "Kernel OK!", 13, 10, 0
msg2 db "Hello, World!", 13, 10, 0
msg_same db "They are the same", 13, 10, 0
print:
pop si
push bp
mov bp, sp
mov si, [bp + 4]
mov ah, 0eh
mov cx, 1
mov bh, 0
@ -25,4 +39,32 @@ print_loop:
int 10h
jmp print_loop
print_exit:
pop bp
ret
strcmp:
push bp
mov bp, sp
mov ax, [bp + 4]
lea si, [bp+6]
lea di, [bp+8]
dec di
mov word [bp - 2], 0
strcmp_loop:
inc di
inc word [bp - 2]
lodsb
cmp [di], al
jne strcmp_notequal
cmp [bp - 2], ax
jne strcmp_equal
strcmp_equal:
mov ax, 1
pop bp
ret
strcmp_notequal:
mov ax, 0
pop bp
ret