• 汇编实验2(又是作业emm)


    实验任务:学会使用debug

    1.使用Debug,将程序段写入内存:

    首先对0021:0000~0021:000F的内存赋值

    这里我赋的值是 11 12 13 14 15 16 17 18

    输入mov ds,as时打错了。。。问题不大,重新输入一次

    实验结果:

    在内存0021:0000处创建了一个长度为FH的栈结构,对AX赋值后压栈

    逐步运行后,观察数据结果并填空

    2.观察如下例子,分析

    分析为何一开始2000:0~2000:000F所有元素为0,而之后发生改变(如下图)

    2000:0~2000:000F的元素发生变化

    对于每一项指令进行操作d查看内存元素

    我们可以发现,执行mov ss,ax后,并没有改变2000:0~2000:000F的元素,而进一步对ax赋值产生了改变

    给ax赋值后压栈前,用d命令观察2000:00内存,都是00,创建栈结构指向这段内存时,有些数据改变了

    仔细观察,不难发现,从2000:000F到2000:0000,
    倒序现实各元素为 01 A3 07 3F 01 08 00 00 20 00 00 00 00 00 00 00,
    显然存在着CS(07 3F),IP(01 08),AX(20 00)的值
    因此,我猜测可能与寄存器栈操作时会将一些寄存器变量如地址压入栈中!
    我在网上查阅了相关资料,发现是t命令实际是引发了单步中断,执行中断例程时,CPU会将一些中断例程使用的的寄存器变量自动压栈到栈中。
    这是以后学习的内容emm
     
  • 相关阅读:
    洛谷P1762 偶数
    复习1
    zoj3329 One Person Game
    poj2096 Collecting Bugs
    hdu4035 Maze
    Cogs 2856. [洛谷U14475]部落冲突
    洛谷P2474 [SCOI2008]天平
    洛谷P3802 小魔女帕琪
    清北刷题冲刺 11-03 p.m
    清北刷题冲刺 11-03 a.m
  • 原文地址:https://www.cnblogs.com/mrorangerabbit/p/9861096.html
Copyright © 2020-2023  润新知