|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 如何做到相减...
困惑啊。。。。
|
|