zoukankan      html  css  js  c++  java
  • 实验二

    实验前应了解的是d命令的一些格式
    1)

    -r ds
    :1000
    -d ds:0   //查看从1000:0开始的内存区间中的内容
    

    2)

    -r ds
    :1000
    -d ds:10 18//查看1000:10-1000:18中的内容
    
    -d cs:0  //查看当前代码段中的指令代码
    
    -d ss:0    //查看当前栈段中的内容
    

    实验任务:
    1)



    代码含义:

    mov ax,ffff
    mov ds,ax
    

    将ds指向了ffff段内存,即数据段数ffffH:00开始的内存单元

    mov ax,2200
    mov ss,ax
    mov sp,0100
    

    建立栈结构,ss指向2200H段内存,初始化栈顶指针是100H

    mov ax,[0]            //;ax=C0EA
    add,ax,[2]             //;ax=C0FC
    mov bx,[4]            //;bx=30F0
    add bx,[6]             //;bx=6021
    

    参看电脑上显示出来的ds段内存可得到以上答案

    push ax   //将ax压栈
    push bx   //将bx压栈
    pop ax     //栈顶元素弹出送入ax
    pop bx     //栈顶元素弹出送入bx
    
    push [4]
    push [6]
    

    将内存单元【4】【6】压栈

    2)分析:在2000H的内存段创建了一个栈,ss:sp指向了栈顶2000:10H,给ax赋值3123后压入栈中,再给ax赋值3366后压入栈中。
    刚开始没有执行代码时d命令观察2000:00内存时都是00,执行t命令后这段内存就多了一些数据,我个人认为应该是因为t命令是单步跟踪,每一步之间中断时会产生一些寄存器变量,cpu将这些变量自动压入了栈中导致的(毕竟sp的值是正确的,所以应该是这个原因啦)

  • 相关阅读:
    Java设置环境变量
    php 生成二维码
    php 生成读取csv文件并解决中文乱码
    php 过滤重复的数组
    php 读取,生成excel文件
    php 逐行读取文本文件
    php 多维数组按键值分类
    python学习,day2:利用列表做购物车实例
    python学习,day1作业:设计一个三级菜单
    python学习,day2:字典
  • 原文地址:https://www.cnblogs.com/Nicholastwo/p/9853358.html
Copyright © 2011-2022 走看看