|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 weixianlang 于 2011-7-26 15:06 编辑
不是说可以直接从内存单元传递数据到寄存器中么,[0]表示的就是ds段中偏移地址为0的单元中的内容么?那么下面两段代码的作用应该是一样的啊,但是,实际上结果大不相同,要完成8.1的任务就只能用第一种形式,加上段前缀,第二种没加段前缀就出错了,这是为什么呢?
第一种形式:
- assume cs:code,ds:data
- data segment
- dd 100001
- dw 100
- dw 0
- data ends
- code segment
- start: mov ax,data
- mov ds,ax
- mov dx,ds:[2]
- mov ax,ds:[0]
- div word ptr ds:[4]
- mov ds:[6],ax
- mov ax,4c00h
- int 21h
- code ends
- end start
- 第二种形式:
- assume cs:code,ds:data
- data segment
- dd 100001
- dw 100
- dw 0
- data ends
- code segment
- start: mov ax,data
- mov ds,ax
- mov dx,[2]
- mov ax,[0]
- div word ptr [4]
- mov [6],ax
- mov ax,4c00h
- int 21h
- code ends
- end start
复制代码
|
|