对123 234 456 678 -1234 -12345 中的负数求和(汇编语言)
------解决方案--------------------------------------------------------
assume cs:code,ds:data
data segment
var1 dw -1234,-12345
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,offset var1
mov ax,word ptr [si]
mov bx,word ptr [si+2]
add ax,bx
mov ax,4c00h
int 21h
code ends
end start
这两个数加起来,没有超出16位二进制所表示的有符号数范围,直接加就行了。如果不理解可能是因为有符号数的表示不理解,或者符号标志位也去了解一下。
------解决方案--------------------------------------------------------
assume cs:code,ds:data
data segment
var1 dw 123, 234, 456,678,-1234,-12345
data ends
code segment
start:
mov ax,data
mov ds,ax
mov dx,0
mov si,offset var1
mov cx,6
next:
dec cx
cmp cx,0
jb done
mov ax,word ptr [si]
inc si
cmp ax,0
jae next
add dx,ax
jmp next
done:
mov ax,4c00h
int 21h
code ends
end start