如何比较x86程序集中的字符

时间:2014-04-10 22:45:38

标签: string assembly x86 compare nasm

我将两个单词存储在名为first和second的变量中。如何比较每个字符串的字符以查看哪个更大?

section .data

greet: db "Type a word: "
greetL: equ $-greet

section .bss

first: resb 20
second: resb 20

section .text

global _start

_start:
    nop
    mov eax, 4
    mov ebx, 1
    mov ecx, greet
    mov edx, greetL
    int 80H

    mov eax, 3
    mov ebx, 0
    mov ecx, first
    mov edx, 20
    int 80H

然后我只是做同样的事情来得到第二个字

1 个答案:

答案 0 :(得分:0)

我不知道,cmp我想......

    xor ecx, ecx ; index
top
    mov al, [first + ecx]
    cmp [second + ecx], al
    jb first_is_bigger
    ja second_is_bigger
    cmp al, LF ; LF equ 10
    je they_are_equal
    inc ecx
    jmp top

xor ecx, ecx ; index top mov al, [first + ecx] cmp [second + ecx], al jb first_is_bigger ja second_is_bigger cmp al, LF ; LF equ 10 je they_are_equal inc ecx jmp top 那是未经测试的。我最近一直有很多脑胀气 - 最好检查一下。如果讨厌的用户输入超过20个字符,你可能会陷入深深的泥水......