为什么仅使用符号标记不能完成带符号的数字比较

时间:2019-08-21 19:29:01

标签: fasm

所以我做了一个程序,读取两个输入a和b,如果a较大则将a与b进行比较,如果b大于或等于1,则仅使用符号标志返回0。我应该使用溢出标志,但无法找到需要溢出标志的测试用例

BITS 32

%include'training.s'

全局主要 外部出口

; ============================================== .text

; The program begins here:

主要:

    call    read_hex  ;;;this function reads an input from shell    
    mov     ecx,eax 
    call    read_hex
    sub     eax,ecx
    js      b1          

s1:

    call    print_eax ;;;this function prints in shell value in eax
    mov     eax,0
    call    print_eax
    jmp     c1

b1:

    call    print_eax ;
    mov     eax,1
    call    print_eax
    jmp c1

c1:

; Exit the process:
push    0
call    exit

1 个答案:

答案 0 :(得分:0)

我刚发现一个测试用例8000 0000和0FFF FFFF设置了溢出标志,输出不是预期的结果