王爽汇编实验6
本帖最后由 153648298 于 2012-6-25 19:15 编辑assume cs:code,ds:data,ss:stack
data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
stack segment
dw 0
stack ends
code segment
start:mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,2
mov bx,3
mov cx,4
s0:push cx
mov si,0
mov cx,3
s:mov al,
and al,11011111b
mov ,al
inc si
loop s
pop cx
add bx,16
loop s0
mov ax,4c00h
int 21h
code ends
end start
鱼哥求租你了,为什么这个程序我单步运行完mov bx 0003的时候出现了program terminalted normally
本帖最后由 we6540 于 2012-6-25 19:45 编辑
把下面的这段去掉“mov sp,2”或把2改大一点就可以运行了!
we6540 发表于 2012-6-25 19:40 static/image/common/back.gif
把下面的这段去掉“mov sp,2”或把2改大一点就可以运行了!
:sleepy:我晕,我就是像知道为什么sp=2就不能运行。我也知道改大一点 一般空栈都把栈指针SP指向栈低。对于栈内部操作目前不清楚,比如数据压栈后,出栈,那么栈中数据应该还是和原来一样啊。但DEBUG查看就是不一样的。不明白!以后在看栈里面到底怎么操作吧。现在定义空栈就把栈指针指向栈底吧!
页:
[1]