|
发表于 2011-8-11 00:29:19
|
显示全部楼层
??? 发表于 2011-8-7 16:04
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
课本为什么是 mov sp, 30 而小甲鱼的是 mov sp, 32 我来探讨下 dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
这里是 16个字 型数据
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h 这里是 8个字 型数据 进栈 出栈 都是 8个字 型数据
16个字型数据+进栈8个字型数据+出栈8个字型数据=32 那么push执行的步骤一. sp-2 二 . ss:sp
那么来看下 检测点6.1 第2题小甲鱼 答安
(2)
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0,0,0,0,0
start:
mov ax,cs ;cs为所填第一空
mov ss,ax
mov sp,24h ;此条指令为所填第二空
mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s:
push [bx]
pop cs:[bx] ;此条指令为所填第三空
add bx,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
按照上面的分析dw 0,0,0,0,0,0,0,0,0,0这里是 10个字 型数据
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h 这里是 8个字 型数据 进栈 出栈 都是 8个字 型数据
10个字型数据+进栈8个字型数据+出栈8个字型数据=26
为什么小甲鱼这里不是 mov sp,26h 而是 mov sp,24h ;此条指令为所填第二空 求解
|
|