鱼C论坛

 找回密码
 立即注册
查看: 2209|回复: 2

[技术交流] 奇妙的栈使用!!为何会这样???

[复制链接]
发表于 2014-3-1 20:56:17 | 显示全部楼层 |阅读模式
1鱼币
assume cs:code
a segment
db '1.advantage     '
db '2.dislike       '
db '3.common        '
a ends

code segment
start:
      mov ax,a
   mov ds,ax
   mov bx,0
   mov cx,3
   

L:    push cx
   mov cx,4
   mov si,0
S:mov al,[bx+si+2]
   and al,11011111b
   mov [bx+si+2],al
   inc si
   loop S
   
   add bx,16
   pop cx
   loop L
   
   mov ax,4c00h
   int 21h
code ends
end start
;实现前四个字母大写;
;利用栈暂存cx的值;
;为什么没有定义栈段,还是可以使用栈呢?而且照样运行正确???

最佳答案

查看完整内容

亲你的栈的值覆盖了code段 因为覆盖的是已经执行过的代码 因此没有影响到执行的 ------------------------------- 好吧 没仔细看 你把栈段指向了存数据的地方 看你的代码应该只会影响到第一个打印的字符里的1吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-1 20:56:18 | 显示全部楼层
本帖最后由 猫咪喵喵 于 2014-3-8 11:56 编辑

亲你的栈的值覆盖了code段
因为覆盖的是已经执行过的代码
因此没有影响到执行的

-------------------------------
好吧 没仔细看 你把栈段指向了存数据的地方
看你的代码应该只会影响到第一个打印的字符里的1吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-1 21:13:53 | 显示全部楼层
ESP始终是存在的,为什么不能用呢??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-24 21:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表