请教大家汇编语言第七章的问题
assume cs:codesg,ds:datasg,ss:stacksgstacksg 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,
and al,11011111b
mov ,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) 第2个问你理解得没错,第3个问我只能说sp是与栈段ss相关的,而bx是通用寄存器,可以用作寻址和存储用 学习,学习, 栈空间的最小值是不是16个字节啊? 会游泳的猫 发表于 2012-6-30 01:17 static/image/common/back.gif
栈空间的最小值是不是16个字节啊?
16个位吧 SP都是加2减2的 Yara 发表于 2012-6-29 21:21 static/image/common/back.gif
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
16个字节 是10H吧 我怎么感觉不太对呢
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
dw = dword = 4byte
dw 0,0,0,0,0,0,0,0这条伪指令不是应该申请了 32个字节的空间吗
十进制32 = 十六进制20h
我感觉这道题本身就有问题 哦 不对 是我理解多了
dw 不是 dword 的意思
Sorry!
继续维持原判 会游泳的猫 发表于 2012-6-30 01:17 static/image/common/back.gif
栈空间的最小值是不是16个字节啊?
{:5_105:}这里栈空间的大小是你自己定义的stacksg段,没有说特定是10H 定义的栈空间是用来存放cx的
页:
[1]