王爽的汇编题,检测点6.1

jjyjjyjjy 2004-05-04 12:18:51
用内存0-15的单元中内容改写程序的数据,用栈实现。
assume cs:codeseg
codeseg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0
start: mov ax,(cs)---填空
mov ss,ax
mov sp,(26)---填空
mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s:
push [bx]
(pop cs:[bx])---填空
add bx,2
loop s
mov ax,4c00h
int 21h
codeseg ends
end start
一步步执行查看,数据确实被内存的0-15的数据改写了,但执行了完了后为什么只有
程序中的第一个数据被正确改写,其它的都不对?会的请帮忙看看,谢谢。

...全文
345 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
benlar 2004-05-05
  • 打赏
  • 举报
回复
将mov sp,26
改为:
mov sp,260
后就不会又问题吗?这样是可以使堆栈不覆盖数据区了,但是改为260后就不会覆盖其他有用数据吗?

这样说是不负责任的!

指令“int 21”的执行要用栈,在本题中"int 21"用的栈空间超过了5个字,因此覆盖了前面的数据。

本题意图可能是 让读者跟踪到“int 21h”之前,看到“内存0-15的单元中内容改写程序的数据”就完了,写“mov ax,4c00h”和“int 21h”只是为了程序的完整性。





jjyjjyjjy 2004-05-05
  • 打赏
  • 举报
回复
谢谢benlar(登) ,谢谢大家!
csdsjkk 2004-05-04
  • 打赏
  • 举报
回复
mov sp,26
改为:
mov sp,260
jjyjjyjjy 2004-05-04
  • 打赏
  • 举报
回复
首先我谢谢csdsjkk(),改了以后确实可以了,但这个题目要求把栈设在程序内(对不起,这点我忘写了),改成260不是不在程序分配的内存里面了?
csdsjkk 2004-05-04
  • 打赏
  • 举报
回复
这个“260”没有任何意思,
程序本身的问题是指令‘mov sp,26’使堆栈设在了数据区,
int21调用会导致堆栈覆盖数据区,
解决的方法是使堆栈远离数据区,sp 改为260,2600,26000均可
cnd2004 2004-05-04
  • 打赏
  • 举报
回复
能解释一下么,
那个260是什么意思
XmagicX 2004-05-04
  • 打赏
  • 举报
回复
解决了
  • 打赏
  • 举报
回复
csdsjkk() 真厉害我在作的时候也出现同样的问题,按他的改了后就没问题了
同时也要谢谢jjyjjyjjy (Jack jiang)
内容概要:本文围绕基于粒子群算法(PSO)的风电与水电(抽水蓄能)联合优化调度问展开研究,旨在通过智能优化算法实现可再生能源的高效利用与电力系统的经济稳定运行。文中系统阐述了粒子群算法的核心原理及其在电力调度中的适用性,构建了综合考虑风电出力不确定性、抽水蓄能电站调节能力及系统运行约束的联合优化调度模型。采用Matlab进行算法编程与仿真求解,验证了该方法在降低系统综合运行成本、提升新能源消纳水平、增强电网调峰调频能力等方面的优越性能。研究进一步设计了多种对比场景,分析不同调度策略下的系统表现,充分展示了所提模型在应对复杂运行条件时的鲁棒性与实用价值。; 适合人群:具备一定电力系统分析基础和Matlab编程能力的研究生、科研人员,以及从事新能源并网调度、电力系统规划与运行等相关领域的工程师; 使用场景及目标:①应用于风电场与抽水蓄能电站的协同优化调度决策支持;②为高比例可再生能源接入的电力系统提供经济可靠的低碳调度方案;③服务于高校及科研院所中关于智能优化算法在能源系统中应用的教学与科研实验; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节与模型构建逻辑,重点关注目标函数设计、约束条件处理及参数设置对优化结果的影响,并通过复现仿真结果来掌握粒子群算法解决复杂非线性调度问的关键技术要点。

21,500

社区成员

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

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