搜索
编程论坛
→
开发语言
→
『 汇编论坛 』
→ 在16位的DOS汇编中,数据段可以执行吗?
标题:
在16位的DOS汇编中,数据段可以执行吗?
只看楼主
rediums
等 级:
新手上路
威 望:
3
帖 子:367
专家分:0
注 册:2007-7-29
第
11
楼
得分:0
为了程序能够正确执行,只能这样了。
2008-10-07 23:56
toyix
等 级:
新手上路
帖 子:112
专家分:0
注 册:2008-7-14
第
12
楼
得分:0
assume cs:code,ds:data,ss:stack
data segment
a db 8Bh,0C3h,0B8h,00h,4Ch,0CDh,21h
data ends
stack segment
b db 8Bh,0C3h,0B8h,00h,4Ch,0CDh,21h
stack ends
code segment
start:mov ax,1111h
mov bx,2222h
;jmp far ptr a
jmp far ptr b
code ends
end start 这样可以吗
2008-10-08 06:53
ONEPROBLEM
来 自:广西 南宁
等 级:
贵宾
威 望:
21
帖 子:1569
专家分:349
注 册:2008-7-11
第
13
楼
得分:0
应该可以了.
8BC3 mov ax,bx
B8004C mov ax,4C00
CD21 int 21
可是这个数据段,其实是可以正常执行下去的代码段.最后,程序竟然在数据段里安全地退出了.假如jmp far ptr b 后面还有其它指令呢?结果可能是:数据段变成了子程序.
2008-10-08 07:19
蓝色神话
等 级:
论坛游民
威 望:
1
帖 子:404
专家分:24
注 册:2006-5-11
第
14
楼
得分:0
CPU只认机器指令,不管你这个指令放在哪。CPU只是从PC寄存器指向的地方取指令然后执行!
2008-10-08 10:26
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
15
楼
得分:0
[bo][un]蓝色神话[/un] 在 2008-10-8 10:26 的发言:[/bo]
CPU只认机器指令,不管你这个指令放在哪。CPU只是从PC寄存器指向的地方取指令然后执行!
9494 dos里没那么多限制 只要指令有效 就行
2008-10-08 12:49
darkdsn
等 级:
论坛游民
帖 子:4
专家分:10
注 册:2012-11-27
第
16
楼
得分:0
数据和代码本没有区别,只不过存放的地方不一样,当两者重合时就会产生边界问题.如果把重合处的代码属性改为可执行,再把指令指针指向那里,就可以执行了.
2012-11-27 22:20
16
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-236727-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.022773 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved