初学者第一问:关于一个基本汇编语句的意思

ps121 2008-11-06 11:29:08
start push ds
sub ax,ax
push ax ; 程序结束,返回操作系统
mov ax,data
mov ds,ax ;数据段初始化

我学的是IBM-PC汇编语言,

这是老师给的实验代码常见的一段指令,
一直不太明白它的具体含义,
有哪位高手讲解一下这一段的含义。
问题也许很简单,但是麻烦解释一下。
我想学好这门课。
谢谢
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
killbug2004 2008-11-06
  • 打赏
  • 举报
回复
因为8086下,内存是分段管理的,所以ds,es,ss,cs这些段寄存器不是固定的,有时会随程序运行要改变,而在程序执行开始时,要按照你在程序中定义的不同段的偏移来初始化相应的段,而上面的data代表你定义的数据段段偏移, mov ax,data mov ds,ax 这两条指令正是数据段初始化,对内存数据进行操作都要指定段,只不过有时是有默认的段
jakqigle 2008-11-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cnzdgs 的回复:]
mov ax,data
mov ds,ax
这两条指令是初始化ds,然后才能访问data段中的数据。其它指令都没用。
[/Quote]
我用的是8086。不过这两句上同!
gooogleman 2008-11-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cnzdgs 的回复:]
mov ax,data
mov ds,ax
这两条指令是初始化ds,然后才能访问data段中的数据。其它指令都没用。
[/Quote]

我都忘记了,如今是ARM汇编,有点不一样
zhourenyun 2008-11-06
  • 打赏
  • 举报
回复
start :push ds
sub ax,ax sub 相 减
push ax 压栈 ; 程序结束,返回操作系统
mov ax,data
mov ds,ax ;数据段初始化
anothertwo 2008-11-06
  • 打赏
  • 举报
回复
hahahah ahahaha
cnzdgs 2008-11-06
  • 打赏
  • 举报
回复
mov ax,data
mov ds,ax
这两条指令是初始化ds,然后才能访问data段中的数据。其它指令都没用。

21,500

社区成员

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

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