Я пытаюсь создать форму входа для моей ОС. Как Kali Linux S SH логин. Пользователь будет показан, но пароль не будет показан. Я использую int 16h / ah=0
, чтобы прочитать нажатие клавиши. Но я не знаю, взять ли одну строку ввода (например, input()
в Python) и соединить две строки. Я видел темы, объясняющие соединение двух строк, но я не нашел ни одной темы о вводе одной строки в сборке. Я использую NASM для компиляции.
Мой код:
bits 16
org 0x7c00
mov si, loginmsg
call ps
call nl
mov si, usermsg
call ps
call nl
call inputstring
jmp $
;INPUT FUNCTION
inputstring:
inputchar:
mov ah, 00h
int 16h
;I do not know what to do
ret
;VARIABLES
loginmsg db 'Please login to continue...', 0
loginfailmsg db 'Wrong user or password!'
loginsuccessmsg db 'Successfuly logged in.'
usermsg db 'User: ', 0
passmsg db 'Password: ', 0
defuser db 'root'
defpass db 'root'
entereduser times 16 db 0
enteredpass times 16 db 0
indexuser db 0
indexpass db 0
;FUNCTIONS:
;BACKSPACE
bs:
pusha
mov al, 8 ;BACKSPACE
mov ah, 0eh
int 10h
mov al, 32 ;SPACE
mov ah, 0eh
int 10h
mov al, 8 ;BACKSPACE
mov ah, 0eh
int 10h
popa
ret
;NEWLINE
nl:
pusha
mov al, 0ah ;10
mov ah, 0eh
int 10h
mov al, 0dh ;13
mov ah, 0eh
int 10h
popa
ret
;PRINTSTRING
ps:
pusha
ps_test:
lodsb
cmp al, 0h
je ps_eof
mov ah, 0eh
int 10h
jmp ps_test
ps_eof:
popa
ret
times 510 - ($ - $$) db 0
dw 0xaa55