dseg segment
vars dd 9db34c7ah
vard dd ?
dseg ends
cseg segment
assume cs:cseg, ds:dseg
start: mov ax, dseg
mov ds, ax
mov ax, word ptr [vars]
mov dx, word ptr [vars+2]
mov bx, dx
and bx, 8000h
jz ok ;如果为正数则补码与原码相同
not ax ;负数求反码
not dx
or dx, 8000h
add ax, 1h ;反码加1等于补码
adc dx, 0
ok: mov word ptr [vard], ax
mov word ptr [vard+2], dx
mov ah, 4ch
int 21h
cseg ends
end start