. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->包含多个段的程序
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  (汇编二版)检测点6.1第二题  [待解决] 回复[ 2次 ]   点击[ 723次 ]  
378499835
[帖 主]   [ 发表时间:2008-12-17 21:43 ]   [引用]   [回复]   [ top ] 
荣誉值:11
信誉值:1
注册日期:2008-11-24 20:35
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     ;这里我觉得没必要用10个字做栈空间,9个就可以了啊,
                                        ;10个是不是有点浪费了啊,如果是10个字的话,cs:20这个字就
                                        ;没起什么作用啊,因为下面的进栈和出栈都用一个字就可以了啊
              
start: MOV AX,CS
       MOV SS,AX
       MOV SP,24h   ;10个字添24H,可如果用9个字,添22H,我用DEBUG调试后仍然达到
                       ;要求了啊,            
       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
上面的备注就是我对这个题的问题,希望大虾可以帮我解决下,说的不好,大家不要笑啊!
mouse
[第1楼]   [ 回复时间:2008-12-19 14:04 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
DW 0,0,0,0,0,0,0,0,0,0     ;这里我觉得没必要用10个字做栈空间,9个就可以了啊, 
                                        ;10个是不是有点浪费了啊,如果是10个字的话,cs:20这个字就 
                                        ;没起什么作用啊,因为下面的进栈和出栈都用一个字就可以了啊 
---------------------
看分析楼主对这个程序已经分析透彻了。主要的问题是栈设置。
单单从上面的程序来分析,程序进栈和出栈只使用到了一个字,所以sp=18就可以满足要求了。同理设置sp为20 24等值也都可以。
deityenvoy
[第2楼]   [ 回复时间:2008-12-19 22:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-06 15:43
楼主也是这个的呀,好奇怪的说,我看好多人这道题都是5个字单元。难道大家用的版本都不一样?
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved