解惑,解惑,汇编大人请入

xirenshen 2003-09-05 09:55:31
main proc far
assume cs:program,ds:datarea
start:
;set up stack for return
push ds
sub ax,ax
push ax
..........
书上是这样描述以上语句的:“这里把主程序建立为过程,由dos调用该过程。进入程序后,首先把ds的内容和0作为段地址和偏移地址入栈,以便在程序结束时用ret指令返回dos”

这段话我看的非常胡涂,
1文章中并没有call main的语句,为什么说dos调用该过程
2程序不就是在dos环境下运行的嘛为什么有“返回dos”之说
3为什么通过以上压栈就可以实现“返回dos”
初学汇编不能看透其中奥妙请大人详解,谢谢
...全文
123 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫郢剑侠 2003-09-05
  • 打赏
  • 举报
回复
这个问题以前曾经讨论过,
最后的结论是推荐调用INT 21H的4CH号子功能来结束程序返回DOS.
SoRoMan 2003-09-05
  • 打赏
  • 举报
回复
同意樓上兩位。
補充一點:
關於3.因為dos加載一個外部命令或應用程序時,會在程序段之前設置一個256字節的
信息區,就是PSP。在PSP的偏移00H處安排了一條指令:int 20h,而當dos加載程序時,會將ds,es指向PSP,所以ret返回時,彈出ds給cs,0給ip.實現 (cs:ip)=int 20h 程序終止退出,返回dos.
spbabyba 2003-09-05
  • 打赏
  • 举报
回复
你在DOS里,输入UEXE.EXE(你自己写的程序).
1.DOS就CALL你的MAIN函数了.(这个代码不在你的程序里,在操作系统里).
2.你的程序运行完了.不可能关机或挂起.要回到操作系统(DOS)下,继续做别的事.
3.程序把 0 压入堆栈,返回后就回到DOS.
W32API 2003-09-05
  • 打赏
  • 举报
回复
1。任何程序都是一个或者多个过程,你的程序由操作系统调用,
在你的代码里面当然不会 CALL 自己。
2。DOS 操作系统在运行应用软件的时候是把控制权交给应用软件的,
所以在软件结束运行的时候要把控制权交还 DOS 系统。
方法比较多,可以调 21H、20H,也可以直接 RET,因为程序也是过程。
3。这种方法我没有试过,习惯于使用 20H 返回。
他所说的是返回 DS:0000,这个应该是系统提供的一种返回机制。
xirenshen 2003-09-05
  • 打赏
  • 举报
回复
在线等待,解释明白后立即结帖^_^
内容概要:本文提出了一种基于混沌系统与DNA编码的复合型彩色数字图像加密方案,旨在解决传统加密算法密钥空间小、抗干扰能力弱的问题。该方案利用混沌系统生成伪随机序列,结合DNA碱基编码规则对图像RGB三通道进行像素级置换与混淆扩散,实现高安全性加密;解密过程则通过逆操作精确还原原始图像。文章重点对该方案进行了系统的抗噪声与抗裁剪性能分析,实验结果表明,该算法在面对高斯噪声、椒盐噪声以及不同面积、位置的裁剪攻击时均表现出优良的鲁棒性,能够有效恢复图像核心信息,适用于网络传输与私密存储等复杂环境下的图像安全保护。; 适合人群:具备一定信号处理或信息安全基础知识,从事图像加密、信息隐藏、多媒体安全等相关领域的科研人员及研究生。; 使用场景及目标:①用于提升数字图像在网络传输中的安全性,防止窃听与篡改;②适用于医疗影像、军事测绘、商业机密等对图像安全性和抗干扰性要求较高的应用场景;③为研究高鲁棒性图像加密技术提供理论支持与实验参考。; 阅读建议:建议读者结合Matlab代码实践加密与解密流程,并自行设计不同强度的噪声与裁剪干扰实验,深入理解混沌置乱与DNA编码在提升算法鲁棒性方面的协同机制。

21,500

社区成员

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

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