|
1鱼币
assume cs:codesg,ds:datasg,ss:stacksg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. dispalay.....'
db '2. brows........'
db '3. replace......'
db '4. modify.......'
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
mov bx,0
mov cx,4
s0: push cx
mov si,0
mov cx,4
s: mov al,[bx+3+si]
and al,11011111b
mov [bx+3+si],al
inc si
loop s
add bx,16
pop cx
loop s0
mov ax,4c00h
int 21h
codesg ends
ends start
问题是:
1.为什么mov sp,16,sp为什么是16?
2.如果是16的话,那么db的数据是stacksg:0000 1 . d i s p a l a y . . . . .
stacksg:0010 2 . b r o w s . . . . . . . .
stacksg:0020 3 . r e p l a c e . . . . . .
stacksg:0030 4 . m o d i f y . . . . . . .
我这样理解是否有错?
3.我一开始理解得是SP=0
BX=16
|
最佳答案
查看完整内容
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
这里,你先把SS与stacksg段挂钩了,而你stacksg段定义了16字节,所以你栈顶你要指向16d(十进制的16)
|