[.残夜朝阳.] 发表于 2012-8-5 03:40:57

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

王爽汇编 6章 实验五

assumecs: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:
   add al,ds:
mov ds:,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:    mov ds:,al这2个偏移地址就得 (N/16+1)*16,可是 计算机 如何计算出 N的位数?

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

困惑啊。。。。

wouiwhbn 发表于 2012-8-5 12:19:45

本帖最后由 wouiwhbn 于 2012-8-5 12:21 编辑

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

同学要是有奖励,会有更多人回复你的,这样我们会有更大的动力

静雨纷纷 发表于 2012-8-5 12:34:11

···呵呵··我也不懂··坐等高手来····

静雨纷纷 发表于 2012-8-7 00:57:41

啊···难道要沉····
页: [1]
查看完整版本: 王爽汇编 6章实验五问题 db数据段