当前位置: 代码迷 >> 汇编语言 >> 负数求和(编译语言)
  详细解决方案

负数求和(编译语言)

热度:5801   发布时间:2013-02-26 00:00:00.0
负数求和(汇编语言)
对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
  相关解决方案