鱼C论坛

 找回密码
 立即注册
查看: 3073|回复: 5

[争议讨论] 第六章的一个疑问 麻烦小甲鱼进来下

[复制链接]
发表于 2011-8-11 00:38:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 weixianlang 于 2011-8-11 08:20 编辑

第六章的一个疑问 麻烦小甲鱼进来解答下  谢谢
assume cs:codesg
codesg segment
        dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
        dw 0,0,0,0,0,0,0,0
start: mov ax, cs 
           mov ss, ax
           mov sp, 32
           mov bx, 0
           mov cx, 8
        s:push cs:[bx]
        add bx, 2
        loop s
        
        mov bx, 0
        mov cx, 8
  s0:pop cs:[bx]
     add bx, 2
         loop s0
         mov ax, 4c00h
         int 21h
codesg ends
end start

课本为什么是   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    ;此条指令为所填第二空  求解


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-11 08:27:18 | 显示全部楼层
首先, 你的计算公式出错了原本的数据的占用8个字, 然后程序申请了10个字 , 一共占用18个字,就是36个字节,36个字节换算成16进制就是24h,所以SP是24h
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-11 09:31:51 | 显示全部楼层
楼上说的对!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-11 13:30:02 | 显示全部楼层
经鉴定 同意二楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-11 19:11:44 | 显示全部楼层

原来是这样的公式        课本为什么是   mov sp, 30  而小甲鱼的是    mov sp, 32   呢?  难道课本那错了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-12 17:19:47 | 显示全部楼层
同意2楼的答案。不要将16进制与10进制搞混淆了。哥们
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-19 04:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表