能在代码段中存数据吗?怎么做?

021850524 2003-08-21 12:40:29
同上
...全文
135 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
W32API 2003-08-30
  • 打赏
  • 举报
回复
修改 PE 头标记,代码段可写。壳就是这样做的
asmzyd 2003-08-30
  • 打赏
  • 举报
回复
保护模式中在代码段时嵌数据可要小心了,只能读,不能写.
wylpro 2003-08-26
  • 打赏
  • 举报
回复
mov ax,cs:[x]
spbabyba 2003-08-26
  • 打赏
  • 举报
回复
把代码和数据定义成一个段.
021850524 2003-08-24
  • 打赏
  • 举报
回复
如果定义了多个代码段呢?
GhostAdz 2003-08-23
  • 打赏
  • 举报
回复
关注
W32API 2003-08-23
  • 打赏
  • 举报
回复
加上数据所在的段就可以访问
zhaobird 2003-08-23
  • 打赏
  • 举报
回复
push cs
pop ds
这就是cs赋值给ds,
mov ax,0
mov x,ax
后面的就不需要段超越了。
021850524 2003-08-23
  • 打赏
  • 举报
回复
如果cs赋值给ds,使用的时候应该不要段超越了吧?

还有如果我定义了多个数据段用的时候怎么用?如果定义了多个代码段呢?
紫郢剑侠 2003-08-23
  • 打赏
  • 举报
回复
DOS下访问不同段的数据确实要段超越.
junhli 2003-08-21
  • 打赏
  • 举报
回复
随你放那个段,只要你用的时候注意就行了。
W32API 2003-08-21
  • 打赏
  • 举报
回复
代码也是数据嘛。。。随时可以用跳转空出一段空间来做数据空间,只是访问时要用段去选择。
andywolf 2003-08-21
  • 打赏
  • 举报
回复
那就是在用的时候把cs赋值给ds,但是ds要保存的!一般都是用mov byte ptr cs:[x],al这样的加上段跨越后的指令,来实现往代码段里面写值的!
romyks 2003-08-21
  • 打赏
  • 举报
回复
在8086汇编中可以这样做,但在8051中不可以
021850524 2003-08-21
  • 打赏
  • 举报
回复
不错,如果我同时定义了数据段和代码段 还要把CS负给DS吗?
zhaobird 2003-08-21
  • 打赏
  • 举报
回复
楼上的简单。
andywolf 2003-08-21
  • 打赏
  • 举报
回复
code segment
org 0100h
start: jmp abc
db x ?
db y ?
.....

abc:
push cs
pop ds
mov ax,0
mov x,ax

...

ends
end start
bluedreammer 2003-08-21
  • 打赏
  • 举报
回复
代碼段的數據是不是存在堆棧中,好像聽人說過
andywolf 2003-08-21
  • 打赏
  • 举报
回复
小伍你说的不太对,在代码段里面定义数据后,使用的时候一般都要加上段跨越,或者是把cs赋值给ds!
eg:
code segment
org 0100h
start: jmp abc
db x ?
db y ?
.....

abc:

mov ax,0
mov x,ax

...

ends
end start


zhyinfo 2003-08-21
  • 打赏
  • 举报
回复
可,就象在数据段定义一样.

code segment
org 0100h
start: jmp abc
db x ?
db y ?
.....

abc:
mov ax,0
mov x,ax

...

ends
end start
加载更多回复(3)

21,453

社区成员

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

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