zoukankan      html  css  js  c++  java
  • 实验2 用机器指令和汇编指令编程

    实验1

    使用e命令将内存单元0021:0 ~0021:7连续 8个字节数据修改为 30H, 31H, 32H, 33H,34H,35H,36H,37H,及修改后查看是否正确写入

    使用debug将下面的程序写入内存

    利用t命令单步调试:

    (1)执行mov ax,0021

    (2)执行mov ds,ax

    (3)执行mov ax,2200

    (4)执行mov ss,ax

    注意⚠️这里跳过了步骤mov sp,0100

    原因:debug的t命令在执行修改寄存器ss的指令时,下一条指令也紧接着被执行。

    (4)执行mov ax,[0]

    ax=3130

    (5)执行add ax,[2]

    ax=6462

    (6)执行mov bx,[4]

    bx=3534

    (7)执行add bx,[6]

    bx=6c6a

    (8)执行push ax

    sp=00fe;此时内存单元为2200:00fe;内容为6464

    (9)执行push bx

    sp=00fc;此时内存单元为2200:00fc;内容为6c6a

    (10)执行pop ax

    sp=00fe;ax=6c6a

    (11)执行pop bx

     

    sp=0100;bx=6462

    (12)执行 push [4]

    sp=00fe;此时的内存单元为2200:00fe;显示的内容为3534

    (13)执行 push[6]

    sp=00fc;此时的内存单元为2200:00fc;内容为3736.

    填写结果:

    实验2

    (1)先按要求输入指令

    (2)用e命令修改值以及用d命令查看

    (3)单步调试

    执行mov ax,2000 没有变化

    执行mov ss,ax 发生了变化,通过观察此时2000:0006存放的是ax的值。2000:000a存放的是ip的值。2000:000c存放的是cs的值。

    执行mov ax,3123 通过观察此时2000:0006存放的是ax的值,2000:000a存放的是ip的值。2000:000c存放的是cs的值

    执行push,ax ,可以观察到3123被压入栈底,同时2000:0004的起始地址存放了ax的值。2000:0008存放的是ip的值。2000:000a存放的是cs的值。

    执行mov ax,3366,可以观察到2000:0004的起始地址存放了ax的值。2000:0008存放的是ip的值。2000:000a存放的是cs的值。

    执行push ax,可以观察到3366入栈,同时2000:0002的起始地址存放了ax的值。 2000:0006存放的是ip的值。2000:0008存放的是cs的值。

    mov sp,10意味着栈空时,ss:sp指向栈的最底部单元下面的单元。

    初始时栈底为2000:0010,栈顶为2000:0010

    通过查阅资料了解到:这么规定是便于控制栈段大小,防止特别是在有子程序调用时出错。至于这两条指令执行后靠近栈顶的10个字节中值立即有了变化,是对定义栈段时部分运行环境变量进行暂存,靠近栈顶的10个字节中的暂存数据分别是SS、IP、 CS 等的值。

    我的总结与体会

    虽然这次实验不多,但是一步一步的调试以及分析花费了大量的时间。通过自己一步一步的调试,让我明白了数据变化背后的原理。通过这次实验,熟悉了字的传送以及入栈出栈的过程。在自己的操作中发现t命令在执行修改寄存器ss的指令时跳过了步骤mov sp,0100。通过查书发现debug的t命令在执行修改寄存器ss的指令时,下一条指令也紧接着被执行。通过实验二观察出了单元值的变化和cs,ip,ss有关,通过查资料也了解了一些,但有待进一步探索。

  • 相关阅读:
    c++ 小记
    扁平化设计
    json 学习
    c#多线程下载
    php 序列化储存和转化 json_encode() json_decode($q,true)
    支付接口
    JSON.stringify 语法实例讲解 字符串
    jquery 单选框整个选中
    js戳和php戳时间换算
    windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes 解决方案
  • 原文地址:https://www.cnblogs.com/makaya/p/9863475.html
Copyright © 2011-2022 走看看