鱼C论坛

 找回密码
 立即注册
查看: 1758|回复: 3

王爽汇编 6章实验五问题 db数据段

[复制链接]
发表于 2012-8-5 03:40:57 | 显示全部楼层 |阅读模式

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

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

x
王爽汇编 6章 实验五

assume  cs:code,ds:a,ds:b,ds:e
a segment
db 0,1,2,3,4,5,6,7,8,
a ends
b segment
db 0,1,2,3,4,5,6,7,8
b ends
e segment
db 0,0,0,0,0,0,0,0
e ends
code segment
start:  mov ax,a
  mov ds,ax

  mov ax,0
  mov bx,0  
  mov cx,9
  
s: mov al,ds:[bx]
     add al,ds:[bx+10h]
  mov ds:[bx+20h],al
  
  inc bx
  loop s  

  mov ax,4c00H
  int 21H
code ends
end start
如上代码,问题有几个 如下:
1. 不知道 为啥第1个0 和第2个 0相差 10H 16位。。。(数据段首地址 相差的原因)?
2.如果每个 数据段超 16位数  N位。。 .....上面代码  就错误。。。
那么我      add al,ds:[bx+10h]    mov ds:[bx+20h],al这2个偏移地址就得 (N/16+1)*16,可是 计算机 如何计算出 N的位数?

3. 通过数据段首地址 差来计算 相差数 N。。但是如何用 汇编实现?mov ax,a   mov ds,ax    mov ax,b  mov ds,ax....
这2个ds 如何做到相减...

困惑啊。。。。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-5 12:19:45 | 显示全部楼层
本帖最后由 wouiwhbn 于 2012-8-5 12:21 编辑

十进制差一个0就差十位,十六进制差一个0就差十六位

同学要是有奖励,会有更多人回复你的,这样我们会有更大的动力
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-5 12:34:11 | 显示全部楼层
···呵呵··我也不懂··坐等高手来····
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-7 00:57:41 | 显示全部楼层
啊···难道要沉····
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-20 13:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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