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

实验任务(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

 

转载于:https://www.cnblogs.com/Major-blog/p/9863796.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值