奇妙的栈使用!!为何会这样???
assume cs:codea 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,
and al,11011111b
mov ,al
inc si
loop S
add bx,16
pop cx
loop L
mov ax,4c00h
int 21h
code ends
end start
;实现前四个字母大写;
;利用栈暂存cx的值;
;为什么没有定义栈段,还是可以使用栈呢?而且照样运行正确???
本帖最后由 猫咪喵喵 于 2014-3-8 11:56 编辑
亲你的栈的值覆盖了code段
因为覆盖的是已经执行过的代码
因此没有影响到执行的
-------------------------------
好吧 没仔细看 你把栈段指向了存数据的地方
看你的代码应该只会影响到第一个打印的字符里的1吧
ESP始终是存在的,为什么不能用呢??
页:
[1]