a, b, c, d 이 부호있는 8 개의 데이터 세그먼트에 저장된 변수 인 (a * (bc) * d)를 계산하는 어셈블리 프로그램을 작성해야합니다. 비트 형식. 다음과 같이 는x86 어셈블러. 부호있는 변수와 부호없는 변수와 8과 16 변수의 차이
는 다음 코드
내 질문에
data segment
a db 1
b db 9
c db 3
d db 4
x dw ?
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
; what would the difference be in the following three lines if the variables where signed?
mov al, b
sub al,c
mul a
mul d
;treating result as a 16bit - how about signed?
mov x,ax
mov ax, 4c00h ; exit to operating system.
int 21h
ends
end start
에게 쓴 있습니다 (I는 결과가 부호있는 32 비트 숫자로 표현되어 있다고 가정해야한다) : 내가 필요의 차이는 무엇입니까 (al, ah, bh, bl, ecc ... 8bit), (ax, bx, cd, dx, 16bit)를 제외하고 숫자를 서명하고 서명 한 것으로 취급하는 경우를 알고 싶습니까?
DW 변수를 저장하는 것과 별도로 32 비트 변수를 16 변수와 다르게 취급하는 방법은 무엇입니까?
위의 질문에 대한 간단한 설명을 코드의 관련 부분에 작성했습니다.
누군가 제발 나를 도와주세요. 미리 감사드립니다.