实验一 用机器指令和汇编指令编程
一、实验一
(1)使用a命令

使用e命令:

(2)

(3)

通过d命令找到在内存单元FFF0:00F0开始显示生产日期。
尝试使用e命令改变生产日期,发现此日期不可以修改,原因是这段地址是只读存储器的内存地址,无法被改写。
(4)



改变地址,则图像出现的位置改变;改变汇编指令,则图像的形状改变。
原因是CPU8086从A0000到BFFFF为显存空间,写入其中的数据会被显卡输出到显示器上。
二、实验二
(1)
使用e命令修改内存单元,使用a命令输入指令;

理论分析得到的结果:

使用t命令单步调试:




实验结果与理论运算的结果一致
(2)



mov sp 10表示将栈顶指针指向2000:0010,前三条汇编指令的意思是将栈顶针置为2000,栈指针置为10 。
根据实验结果,mov sp 10跟在上一条指令之后运行,而非单独运行。
通过查阅资料,知道了dos系统下只有一个栈,除了push和pop操作以外,该栈还需要暂存寄存器指令,例如cs,ip的数据。所以执行完几条指令后栈里已经有了数据,而并非等到push或pop操作栈里才有数据。
浙公网安备 33010602011771号