璇玑 发表于 2012-8-17 16:39:03

小甲鱼例题 6.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    ;此条指令为所填第二空   谁能告诉我这个24h是怎么算出来的
    mov ax,0
    mov ds,ax
    mov bx,0
    mov cx,8
s:
    push
    pop cs:    ;此条指令为所填第三空
    add bx,2
    loop s
   
    mov ax,4c00h
    int 21h
codesg ends
end start

本文来自:鱼C工作室<a href=http://www.fishc.com>详细出处参考:http://www.fishc.org/a/kehouti/_huibianyuyan_/839.html

璇玑 发表于 2012-8-17 16:39:57

求好人啊 有人在么:'(

530530 发表于 2012-8-17 17:00:49

对呀 我也在这纠结了大半天呢

lukelqz 发表于 2012-8-17 17:20:43

dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h         这里占用了16个字节
dw 0,0,0,0,0,0,0,0,0,0                                                                     这里占用了20个字节,所以栈顶从36个字节处开始

所以sp=36=24H 不懂的话复习一下第3章

530530 发表于 2012-8-17 17:21:34

lukelqz 发表于 2012-8-17 17:20 static/image/common/back.gif
所以sp=36=24H 不懂的话复习一下第3章

哈哈 和我想的一样 就是不敢确认

︶ㄣ.蒾途椥返ゞ 发表于 2012-8-17 17:39:23

看看 顺便拿鱼币

xuechong 发表于 2012-8-19 18:40:49

申请的这个段中存放了dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdw 0,0,0,0,0,0,0,0,0,0   所占的最高字节标号是35,因为还要入栈,所以写入的时候sp会先减去2,也就是让sp指向34号单元,所以让栈顶偏移地址指向36,也就是24H
页: [1]
查看完整版本: 小甲鱼例题 6.2 菜鸟求助