Как сравнить две строки в сборке? - PullRequest
0 голосов
/ 03 февраля 2020

В основном я пытаюсь сравнить две строки в сборке, см. Код ниже:

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 Оцените небольшая помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...