求教一汇编语言作业题,8086 dos汇编的

2024-12-30 09:12:05
推荐回答(2个)
回答1:

我把三道题都写给你吧
第一道,我看楼上写的有些错误,sum和di不能直接用add指令,我另外写了一个
data segment
string db 1,2,3,4,5,6,7,8,9,10
sum db 0
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov cx,10
lea di, string
mov ax,[di]
again:inc di
add ax,[di]
Loop again
lea di,sum
mov [di],ax
mov ah,4ch
Int 21h
code ends
end start

第二道题
data segment
a dw 5678H
b dw 1234H
result dw 0
data ends
code segment
assume cd:code,ds:data
start:mov ax,data
mov ds,ax
lea si,a
lea di,b
mov ax,[si]
add ax,[di]
mov di,offset result
mov [di],ax
mov ah,4cH
int 21H
code ends
end start

第三题

data segment
a dd 12345678h
b dd 91012334h
result dd 0
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
lea si,a
lea di,b
mov ax,[si]
add ax,[di]
lea bx,result
mov [bx],ax
mov ax,[si]+2
adc ax,[di]+2 ; 这应该用adc指令,加上CF位
mov [bx]+2,ax
mov ah,4ch
Int 21h
code ends
end start

希望我的回答能帮到你
如果有疑问可以留言

回答2:

data segment
d1 db 1,2,3,4,5,6,7,8,9,10
sum db 0
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov cx,10
mov bx,offset d1
x: add sum,[bx]
inc bx
Loop x
mov ah,4ch
Int 21h
code ends
end start
这是第一题,后面写不下