王爽汇编实验五中,第5题,第六题

5.程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。assumecs:codeasegmentdb1,2,3,4,5,6,7,8aend... 5.程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov es,ax
mov ax,c
mov ds,ax
mov bx,0
mov cx,8
s1:mov al,es:[bx]
mov [bx],al
inc bx
loop s1
mov ax,b
mov es,ax
mov bx,0
mov cx,8
s2:mov al,es:[bx]
add [bx],al
inc bx
loop s2
mov ax,4c00h
int 21h code ends
end start
6. 程序如下,编写code段中的代码,用push指令将a段中的word数据,逆序存储到b段中。
assume cs:code

a segment

dw 1,2,3,4,5,6,7,8

a ends

b segment

dw 0,0,0,0,0,0,0,0

b ends

code segment

start: mov ax,a
mov ds,ax
mov ax,b
mov ss,ax
mov sp,0
add sp,20h
mov bx,0
mov cx,8
s: push ds:[bx]
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start

start部分为需要填入的内容。这个是我自己填写的。不知可否?求大牛指点一二。错了的话麻烦帮忙指出错误。万分感谢。
展开
 我来答
百度网友3b1b680
2011-06-26 · TA获得超过966个赞
知道小有建树答主
回答量:978
采纳率:33%
帮助的人:629万
展开全部
第一个程序没问题,你可以在想想其他的方法,精简一下程序
第二个程序的问题就严重了,b段就10h字节,你却初始化了20h,导致位置定位不对,
其次是每次压入一个字,bx应该增加2,不是1
还有个不是问题的问题,直接给sp赋值10h不就得了,为什么还要先赋0,在加呢
雁塞成
2011-06-25 · TA获得超过138个赞
知道答主
回答量:126
采纳率:0%
帮助的人:37.6万
展开全部
好复杂啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式