. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验2,设置栈段后,为什么没有入栈操作但AX和BP的值也会在设置的栈段中?  [待解决] 回复[ 5次 ]   点击[ 658次 ]  
asm0101
[帖 主]   [ 发表时间:2015-03-13 11:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2015-02-17 23:21
为切实搞清实验2的图3.19中最后一行数值包含的规律性,我修改了实验程序,并执行。看到设置的栈内存数值从左到右分别是AX、BP、IP、CS的值及两个没弄清的非零内存值。
    问题1:为何设置栈段后AX和BP的值也会在该栈段中?
    问题2:如何设计一程序,彻底弄清楚入栈操作前的这个栈底元素(书上是059D,我这里是0E08)倒底代表什么?

    下面是实验的一些数据片段:

(一)实验环境及修改的实验程序输入和程序执行前的寄存器、栈段值等
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\DWS>debug
-r
AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=13A4  ES=13A4  SS=13A4  CS=13A4  IP=0100   NV UP EI PL NZ NA PO NC
13A4:0100 0000          ADD     [BX+SI],AL                         DS:0000=CD
-d 2000:0 f
2000:0000  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
-a
13A4:0100 mov ax,2000
13A4:0103 mov ss,ax
13A4:0105 mov sp,10
13A4:0108 mov ax,3123
13A4:010B mov bx,1111
13A4:010E mov cx,2222
13A4:0111 mov dx,3333
13A4:0114 mov bp,4444
13A4:0117 mov si,5555
13A4:011A mov di,6666
13A4:011D push ax
13A4:011E mov ax,7788
13A4:0121 mov bp,9999
13A4:0124 push ax
13A4:0125
-r
AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=13A4  ES=13A4  SS=13A4  CS=13A4  IP=0100   NV UP EI PL NZ NA PO NC
13A4:0100 B80020        MOV     AX,2000
-d 2000:0 f
2000:0000  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................

(二)程序从开始执行,到设置栈段的代码执行后
AX=2000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=13A4  ES=13A4  SS=13A4  CS=13A4  IP=0103   NV UP EI PL NZ NA PO NC
13A4:0103 8ED0          MOV     SS,AX
-d 2000:0 f
2000:0000  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
-t
AX=2000  BX=0000  CX=0000  DX=0000  SP=0010  BP=0000  SI=0000  DI=0000
DS=13A4  ES=13A4  SS=2000  CS=13A4  IP=0108   NV UP EI PL NZ NA PO NC
13A4:0108 B82331        MOV     AX,3123
-d 2000:0 f
2000:0000  00 00 00 00 00 00 00 20-00 00 08 01 A4 13 08 0E   ....... ........
-t

(三)执行AX、BX、CX ... BP赋值后
AX=2000  BX=0000  CX=0000  DX=0000  SP=0010  BP=0000  SI=0000  DI=0000
DS=13A4  ES=13A4  SS=2000  CS=13A4  IP=0108   NV UP EI PL NZ NA PO NC
13A4:0108 B82331        MOV     AX,3123
-d 2000:0 f
2000:0000  00 00 00 00 00 00 00 20-00 00 08 01 A4 13 08 0E   ....... ........
-t
AX=3123  BX=0000  CX=0000  DX=0000  SP=0010  BP=0000  SI=0000  DI=0000
DS=13A4  ES=13A4  SS=2000  CS=13A4  IP=010B   NV UP EI PL NZ NA PO NC
13A4:010B BB1111        MOV     BX,1111
-d 2000:0 f
2000:0000  00 00 00 00 00 00 23 31-00 00 0B 01 A4 13 08 0E   ......#1........
-t
AX=3123  BX=1111  CX=0000  DX=0000  SP=0010  BP=0000  SI=0000  DI=0000
DS=13A4  ES=13A4  SS=2000  CS=13A4  IP=010E   NV UP EI PL NZ NA PO NC
13A4:010E B92222        MOV     CX,2222
-d 2000:0 f
2000:0000  00 00 00 00 00 00 23 31-00 00 0E 01 A4 13 08 0E   ......#1........
-
  ............
-t
AX=3123  BX=1111  CX=2222  DX=3333  SP=0010  BP=0000  SI=0000  DI=0000
DS=13A4  ES=13A4  SS=2000  CS=13A4  IP=0114   NV UP EI PL NZ NA PO NC
13A4:0114 BD4444        MOV     BP,4444
-t
AX=3123  BX=1111  CX=2222  DX=3333  SP=0010  BP=4444  SI=0000  DI=0000
DS=13A4  ES=13A4  SS=2000  CS=13A4  IP=0117   NV UP EI PL NZ NA PO NC
13A4:0117 BE5555        MOV     SI,5555
-d 2000:0 f
2000:0000  00 00 00 00 00 00 23 31-44 44 17 01 A4 13 08 0E   ......#1DD......
-t

(四)执行AX,BP重新赋值及入栈操作后
AX=3123  BX=1111  CX=2222  DX=3333  SP=000E  BP=4444  SI=5555  DI=6666
DS=13A4  ES=13A4  SS=2000  CS=13A4  IP=011E   NV UP EI PL NZ NA PO NC
13A4:011E B88877        MOV     AX,7788
-t

AX=7788  BX=1111  CX=2222  DX=3333  SP=000E  BP=4444  SI=5555  DI=6666
DS=13A4  ES=13A4  SS=2000  CS=13A4  IP=0121   NV UP EI PL NZ NA PO NC
13A4:0121 BD9999        MOV     BP,9999
-t

AX=7788  BX=1111  CX=2222  DX=3333  SP=000E  BP=9999  SI=5555  DI=6666
DS=13A4  ES=13A4  SS=2000  CS=13A4  IP=0124   NV UP EI PL NZ NA PO NC
13A4:0124 50            PUSH    AX
-t

AX=7788  BX=1111  CX=2222  DX=3333  SP=000C  BP=9999  SI=5555  DI=6666
DS=13A4  ES=13A4  SS=2000  CS=13A4  IP=0125   NV UP EI PL NZ NA PO NC
13A4:0125 0000          ADD     [BX+SI],AL                         DS:6666=00
-d 2000:0 f
2000:0000  00 00 88 77 99 99 25 01-A4 13 08 0E 88 77 23 31   ...w..%......w#1
-
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved