assume语句的作用

我思故我在2014 2014-04-05 10:04:36
assume cs:code,ds:data,ss:stack

data segment
dw 0123h
data ends

stack segment
dw 0,0,0,0
stack ends

code segment
start : mov ax,stack
mov ss,ax
......
code ends
end start

根据我的理解 assume ss:stack 语句已经将 stack的值告诉了ss, 为什么还要用 mov ax,stack 和 mov ss,ax 来给ss赋值?


...全文
180 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
傌鹊 2014-04-05
  • 打赏
  • 举报
回复
傌鹊 2014-04-05
  • 打赏
  • 举报
回复
assume XX:XXXX 只是告诉汇编程序,各个段分别分配给了哪一个段寄存器。但它只是一条伪指令,并不会把段地址装入寄存器。
lm_whales 2014-04-05
  • 打赏
  • 举报
回复
assume伪指令决定,汇编时候,程序访问内存的指令,汇编后需不需要附加段前缀指令。 如果,assume指定定了段和段寄存器的对应关系,汇编的时候,和访问了寄存器对应的段的内存,不需要加段前缀,否则必须加段前缀访问,如果不指定,汇编程序无法确定段和段寄存器的对应关系。 而代码,只能在程序运行过程中,确定段和段寄存器对应关系。 如果,CS 对应的段,没有指定,加载的时候,CS对应的段地址无法确定。 这种程序,一般汇编程序会指定代码段,对应CS寄存器。

21,499

社区成员

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

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