В основном я пытаюсь сравнить две строки в сборке, см. Код ниже:
global _start
section .data
hello: db "Enter Message> ", 15
pass: db "password", 8
section .bss
input: resq 100
section .text
mov eax, 4
mov ecx, hello
mov edx, 15
int 0x80
mov eax, 3
mov ecx, input
mov edx, 100
int 0x80
mov esi, input
mov edi, pass
cmp esi, edi
jne nprinting
je printing
printing:
mov eax, 4
mov ecx, input
mov edx, 100
int 0x80
mov eax, 1
int 0x80
nprinting:
mov eax, 1
int 0x80
в любом случае, если я введу incorrect
или password
в моей подсказке ввода, программа завершит работу без запроса меня. что-нибудь. Я также попробовал что-то вроде:
mov bh, "a"
mov bl, "a"
cmp bh, bl
je printing
jne nprinting
, но все равно не смог распечатать мое значение input
. не уверен, что проблема не завершена или что-то еще.
Я использую Kali- Linux x64: Linux kali 4.19.0-kali3-amd64 #1 SMP Debian 4.19.20-1kali1 (2019-02-14) x86_64 GNU/Linux
.
И скомпилируйте программу следующим образом: nasm -f elf64 -g ./hello.asm && ld -s -o hello ./hello.o
Оцените небольшая помощь.