实验二:用机器指令和汇编指令编程

实验任务(1)

 1.使用 e 命令修改 0021:0~0021:f 数据,及修改后查看是否正确写入的操作

 

修改数据并查看

2.使用 a 命令输入的 p74 指令

 

输入汇编指令

3.每一行指令单步调试

单步执行结果

4.P74 中指令执行后各个寄存器填空结果

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=6C4A

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

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

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

pop bx    ;sp=0100;ax=6C6A

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

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

结论:通过对比发现,实际运行结果和理论两者一致 

 

实验任务(2)

 

图 3.19 中使用 a命令输入的 7 行指令,使用 e 命令修改 2000:0~2000:f的值,及修改后查看的部分

 执行命令,单步调试,并查看指定内存的变化

 内存中值改变的原因:程序运行过程中堆栈段的地址发生了改变

前三行代码的意义:安排 2000:0000~2000:000F 为栈空间, 初始化栈顶为2000:10

 

posted @ 2018-10-27 23:12  豆浆油条_1  阅读(167)  评论(2编辑  收藏  举报