鱼C论坛

 找回密码
 立即注册
查看: 2640|回复: 4

关于实验5(5)

[复制链接]
发表于 2012-3-9 14:08:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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

d segment
     db 0,0,0,0,0,0,0,0
d ends   

code segment
start:mov ax,a
       mov ds,ax
       mov ax,d
       mov es,ax
       mov bx,0h
       mov cx,8
       mov ax,0

   s:  mov al,ds:[bx]
       add al,ds:[bx+16]
       mov es:[bx],al
       inc bx
       loop s
   
   mov ax,4c00h
   int 21h

code ends
end start

在定义字型数据dw和定义字节数据db时,a、b、d三者中的数据在数据段中是不是一定按次序连续存放? 中间不会有其他数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-9 18:15:01 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-3-9 18:25 编辑

0B75:0000  01 02 03 04 05 06 07 08-00 00 00 00 00 00 00 00  a段
0B75:0010  01 02 03 04 05 06 07 08-00 00 00 00 00 00 00 00  b段
0B75:0020  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  c段

这是debug下看的 存放在内存中的 段内数据
当你只设定一个a段的时候数据是依次存放的
当你设定b段的时候 a段数据不够16位的将会用0补齐 一直到下一个16位开始的地方 开始存放B段数据
当你设定C段时候 b段不够16位数据 将用0补齐16位 然后在下一个16位开始的地方  开始存放C段数据


如果只有一个数据段 a 那么 不管里面有dd 的数据还是dw的数据 或者DB的数据  那么他们总是一个挨着一个的存放直到结束
如果有两个或者两个以上的段( a b c d....)那么 不管DD DW DB   数据都是按照各段的顺序依次存放 段与段之间 不够16位的用0填充
比如说上面的a段如果有21个数据  那么
0B75:0000  01 02 03 04 05 06 07 08-09 10 11 12 13 14 15 16   a段
0B75:0010  17 18 19 20 21 00 00 00-00 00 00 00 00 00 00 00  这里a段在21位置处存放完了 后面用0补齐16位 然后 开始b段
0B75:0020 01 02 03 04 05 06 07 08-00 00 00 00 00 00 00 00 b段
上面是我编出來的内存图 方便观看

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-3-9 19:58:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-3-9 20:13:47 | 显示全部楼层
怎么设置最佳答案啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-10 22:23:58 | 显示全部楼层
答案如下

start:mov ax,b
      mov ds,ax
          mov ax,c
          mov es,ax
          mov bx,0
          mov ax,0
          mov cx,8
s1:          mov al,ds:[bx]
      mov ah,0
          mov es:[bx],ax
          inc bx
          inc ax
          loop s1
          mov bx,0
          mov ax,0
          mov cx,8
s2:   mov al,bx
      mov ah,0
      add es:[bx],ax
      inc bx
      inc ax
      loop s2                  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 13:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表