Adds tolower(), toupper()
This commit is contained in:
114
src/tests.asm
114
src/tests.asm
@@ -4,6 +4,8 @@
|
||||
extern exit
|
||||
extern islower
|
||||
extern isupper
|
||||
extern tolower
|
||||
extern toupper
|
||||
; console.asm
|
||||
extern print
|
||||
extern puts
|
||||
@@ -31,6 +33,8 @@ section .rodata
|
||||
TEST_strclr equ 1
|
||||
TEST_islower equ 1
|
||||
TEST_isupper equ 1
|
||||
TEST_tolower equ 1
|
||||
TEST_toupper equ 1
|
||||
TEST_strcmp equ 1
|
||||
|
||||
str1 db "Hello, world!",EOS
|
||||
@@ -114,6 +118,20 @@ section .rodata
|
||||
isupper4 db TAB,"isupper('D'): %d",NL,EOS
|
||||
isupper5 db TAB,"isupper('!'): %d",NL,EOS
|
||||
|
||||
; tolower()
|
||||
msgTolower db NL,"TEST tolower()",NL,EOS
|
||||
tolower1 db TAB,"tolower(str1[0]): %c",NL,EOS
|
||||
tolower2 db TAB,"tolower(str1[1]): %c",NL,EOS
|
||||
tolower3 db TAB,"tolower('!'): %c",NL,EOS
|
||||
tolower4 db TAB,"tolower() -- entire str4: %s",NL,EOS
|
||||
|
||||
; toupper()
|
||||
msgToupper db NL,"TEST tolower()",NL,EOS
|
||||
toupper1 db TAB,"toupper(str1[0]): %c",NL,EOS
|
||||
toupper2 db TAB,"toupper(str1[1]): %c",NL,EOS
|
||||
toupper3 db TAB,"toupper('!'): %c",NL,EOS
|
||||
toupper4 db TAB,"toupper() -- entire str4: %s",NL,EOS
|
||||
|
||||
; strcmp()
|
||||
msgStrcmp db NL,"TEST strcmp()",NL,EOS
|
||||
strcmp1 db TAB,"strcmp(str1, str1): %d",NL,EOS
|
||||
@@ -512,6 +530,102 @@ _start:
|
||||
call printf
|
||||
%endif
|
||||
|
||||
;---
|
||||
;--- tolower()
|
||||
;---
|
||||
%if TEST_tolower
|
||||
lea rdi, [rel msgTolower]
|
||||
call print
|
||||
|
||||
; TEST 1
|
||||
mov dil, byte [str1]
|
||||
call tolower
|
||||
lea rdi, [rel tolower1]
|
||||
mov rsi, rax
|
||||
call printf
|
||||
|
||||
; TEST 2
|
||||
mov dil, byte [str1 + 1]
|
||||
call tolower
|
||||
lea rdi, [rel tolower2]
|
||||
mov rsi, rax
|
||||
call printf
|
||||
|
||||
; TEST 3
|
||||
mov dil, '!'
|
||||
call tolower
|
||||
lea rdi, [rel tolower3]
|
||||
mov rsi, rax
|
||||
call printf
|
||||
|
||||
; TEST 4
|
||||
lea rdi, [rel strBuff1]
|
||||
lea rsi, [rel str4]
|
||||
mov rdx, 32
|
||||
call strcpy
|
||||
mov rdi, rax
|
||||
call strlen
|
||||
mov rcx, rax
|
||||
lea rsi, [rel strBuff1]
|
||||
.tolowerLoop:
|
||||
mov dil, byte [rsi]
|
||||
call tolower
|
||||
mov byte [rsi], al
|
||||
inc rsi
|
||||
loop .tolowerLoop
|
||||
lea rdi, [rel tolower4]
|
||||
lea rsi, [rel strBuff1]
|
||||
call printf
|
||||
%endif
|
||||
|
||||
;---
|
||||
;--- toupper()
|
||||
;---
|
||||
%if TEST_toupper
|
||||
lea rdi, [rel msgToupper]
|
||||
call print
|
||||
|
||||
; TEST 1
|
||||
mov dil, byte [str1]
|
||||
call toupper
|
||||
lea rdi, [rel toupper1]
|
||||
mov rsi, rax
|
||||
call printf
|
||||
|
||||
; TEST 2
|
||||
mov dil, byte [str1 + 1]
|
||||
call toupper
|
||||
lea rdi, [rel toupper2]
|
||||
mov rsi, rax
|
||||
call printf
|
||||
|
||||
; TEST 3
|
||||
mov dil, '!'
|
||||
call toupper
|
||||
lea rdi, [rel toupper3]
|
||||
mov rsi, rax
|
||||
call printf
|
||||
|
||||
; TEST 4
|
||||
lea rdi, [rel strBuff1]
|
||||
lea rsi, [rel str4]
|
||||
mov rdx, 32
|
||||
call strcpy
|
||||
mov rdi, rax
|
||||
call strlen
|
||||
mov rcx, rax
|
||||
lea rsi, [rel strBuff1]
|
||||
.toupperLoop:
|
||||
mov dil, byte [rsi]
|
||||
call toupper
|
||||
mov byte [rsi], al
|
||||
inc rsi
|
||||
loop .toupperLoop
|
||||
lea rdi, [rel toupper4]
|
||||
lea rsi, [rel strBuff1]
|
||||
call printf
|
||||
%endif
|
||||
|
||||
;---
|
||||
;--- strcmp()
|
||||
;---
|
||||
|
Reference in New Issue
Block a user