王爽汇编实验五中,第5题和另一个问题

问题1.对于如下定义的段:namesegment…nameends如果段中的数据占N个字节,则程序加载后,这段实际占有的空间为(N/16+1)*16.(N/16为取整数部... 问题1.

对于如下定义的段:

name segment

name ends

如果段中的数据占N个字节,则程序加载后,这段实际占有的空间为(N/16+1)*16. (N/16为取整数部分)

这里的公式 (n/16+1)*16 是怎么得出来的 这里为什么除16 (乘16) .

帮忙看一下面的代码 不知道对不对 或者有没有更好的方法完成呢

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,c
mov ds,ax
mov bx,0
mov cx,8
s:mov ax,a
mov es,ax
mov al,es:[bx]
add [bx],al
;add [bx],es:[bx]

mov ax,b
mov es,ax
mov al,es:[bx]
add [bx],al
;add [bx],es:[bx]
inc bx
loop s

mov ax,4c00h
int 21h
code ends
end start
展开
 我来答
爱科技的闪耀
2012-04-13
知道答主
回答量:2
采纳率:0%
帮助的人:3194
展开全部
问题一: 这里的公式 (n/16+1)*16 是怎么得出来的 这里为什么除16 (乘16)
物理地址=段地址*16+偏移地址
代码段跟数据段要放在不同的段中,我们知道同一个物理地址可以用不同的段地址跟偏移地址来表示.例如: 13EB:0100 跟 13FB:0000 表示的物理地址都是 13FB0,代码段跟数据段在不同的段地址目的是保证IP的初始偏移地址为0 ,我们的程序在用DEBUG加载时,初始化时IP为0
上面说了这么多,最主要还是要说明怎么保证IP的初始地址为0? CS:IP 应该是XXXX:0 ,段地址的开始都是16的倍数,因此数据段跟代码段之间的数据间隔必须是16的倍数 因此要除16
来自绳金塔含蓄的薄荷
2011-07-27 · TA获得超过198个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:372万
展开全部
多调试就明白,或者书上有写
name segment
name ends
每一个段占用的字节是16的整数倍
比如用作data段,
你只定义1个字节,data段占16字节
2个字节也是占16字节
mov ax,data
然后跟CS比较差1,一个段偏移不就是16字节么 (0001:0000跟0000:0000差16字节)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华芝塔尼欧
2011-07-24 · TA获得超过206个赞
知道答主
回答量:68
采纳率:0%
帮助的人:33.9万
展开全部
献丑了,我也是初学者,不过我感觉你为什么部综合利用寻址方式呢。我会把程序写成下面的样子,仅供参考:
assume cs:code,ds:data
data segment
a db 1,2,3,4,5,6,7,8
b db 1,2,3,4,5,6,7,8
c db 8 dup(?) ; 这是分配不写入数据的内存空间你也可以写成 c 8 dup(0)你原来写的也对
data ends
code segment
start : mov ax,data
mov ds,ax
mov bx,0
mov cx,8
s:mov al,a[bx] 就利用BX来寻找地址
add al,b[bx]
mov c[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
里边可能有遗漏的语句,但是基本思路就是这样,因该比你的简单。另外你随便定义那么多段,会影响编译速度。我在里边采用了标号地址。好了吧,懂了么??嘿嘿。。。没悬赏分也给你回答了。。以后可别这么抠哈。。。。
追问
不用寻址方式 是因为之前还学到那里。  非常感谢你的回答哈。
mov al,a[bx]
add al,b[bx]
mov c[bx],al
有点像 C++中使用数组那样。
呵呵 我也不想抠的 上次提问,把全部的分都给那人了。所以。。。。
ps:你知道我第一个问题 为什么吗
追答
额。。。不好好意思。才看到,,不过我还真不知道。。。这个式子我还头一次看到
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式