• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
哇好厉害吖
博客园    首页    新随笔    联系   管理    订阅  订阅
汇编语言实验2

 

1、实验任务

①使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运算情况填空。

mov ax,0021

mov ds,ax

mov ax,2200

mov ss,ax

mov sp,0100

mov ax,[0]                                            ;ax= 3130          

add ax,[2]                                             ;ax= 6462            

mov bx,[4]                                            ;bx= 3534            

add bx,[6]                                             ;bx= 6C6A            

push ax                                                ;sp= 00FE           ;修改的内存单元的地址是 2200:FE到FF 内容为   62   64                 

push bx                                                ;sp= 00FC           ;修改的内存单元的地址是 2200:FC到FD 内容为   6A   6C                 

pop ax                                                  ;sp= 00FE           ;ax=  6C6A              

pop bx                                                  ;sp=0100            ;bx=   6462            

push [4]                                                ;sp= 00FE          ;修改的内存单元的地址是  2200:FE到FF   内容为   34   35                

push [6]                                                ;sp= 00FC          ;修改的内存单元的地址是  2200:FC到FD   内容为    36   37      

 

数据段被赋值为0021,栈段地址被赋为2200

先执行指令使ax,bx得到数据6462,6c6a,然后将ax,bx数据存入栈中,通过pop进行数据交换,

之后通过push将数据段中0021:0004和0021:0006的数据存入段中

 

②仔细观察图中的实验过程,然后分析:为什么2000:0~2000:f中的内容会发生改变。

 

 

 

 

-t执行了两条指令:mov ss,ax和mov sp,10,mov sp,10是让2000:0000-2000:000F为栈空间,初始化栈顶,让2000:0000-2000:000f里面数据改变

posted on 2018-11-01 22:07  哇好厉害吖  阅读(166)  评论(3)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3