汇编中寄存器的重复定义

zhouqing19871024 2008-10-23 08:37:33
下面的程序将code段中a处的8个数据累加,结果存储到b处的字中
assume cs:code,ds:data

data segment

a:db 1,2,3,4,5,6,7,8

b:dw 0

data ends



code segment

start:

mov ax,data

mov ds,ax

mov si,0

mov cx,8

s: mov al,a[si]

mov ah,0

add b,ax

inc si

loop s



mov ax,4c00h

int 21h

code ends

end start

我想问一下:在程序前面出现了assume ds:data,然后在后面出现了指令mov ax,data和 mov ds,ax,这会不会引起矛盾啊?

...全文
146 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzdgs 2008-10-23
  • 打赏
  • 举报
回复
assume ds:data
这是一条伪指令,不是真正的指令,目的是告诉编译器ds与data段关联,也就是当后面的指令使用data段中的变量时,默认使用ds段寄存器。
BAYNPU 2008-10-23
  • 打赏
  • 举报
回复
assume ds:data;ASSUME伪指令通知MASM用指定的段寄存器来寻址对应的逻辑段,即建立寄存器与段的缺省关系。
mov ax,data
mov ds,ax;初始化数据段段寄存器。两是比较一下看会不会发生冲突?
zuo53664640 2008-10-23
  • 打赏
  • 举报
回复
还可以assume ds:a mov ax,a mov ds,ax 记得改回来哦!!

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧