2017-11-24 24 views
-1

현재 8086 어셈블리를 배우고 있는데 기호와 오버플로 플래그의 차이를 이해하고 있지만 그 중 하나만 켜져있는 예제는 생각할 수 없습니다. 예를 들어 줄 수 있습니까? 가장 간단한 명령을 사용하여 예제를 이해할 수 있도록 노력하십시오.8086 어셈블리 - 부호 및 넘침 플래그

+2

OF 대 CF에 대해 알아 보려면 http://teaching.idallen.com/dat2343/10f/notes/040_overflow.txt를 참조하십시오 (SF가 언급 된 것 같습니다) –

답변

1

x86의 neg 명령어는 0 - input을 기반으로하는 플래그를 설정합니다.

.model small 
.data 
.code 

    mov ax, @data 
    mov ds, ax 

    mov al, 6 
    neg al  ; this will set sign flag but not overflow flag (NEG instruction is used to find 2's complement of some number)  

    mov al, -127   
    sub al, 127 ; this will set overflow flag but not sign flag: -127 - 127 = +2 

    mov al, -128 
    neg al  ; this sets both OF and SF: 0 - 128 overflow to -128 

    mov ah, 04ch 
    int 21h  ; exit(al) 

end 

emu8086에서 테스트되었습니다.

0-128이 -128까지 오버 플로우합니다. (2's complement special case of the most negative number being its own absolute value). 가장 큰 8 비트 2의 보수 정수는 +127입니다.