实验1 用机器指令和汇编指令编程
实验一
实验任务(1)用t命令和a命令两种方式,写入内存。用t命令单步调试。附上实验截图。


实验任务(2)附上a命令写入和t命令单步调试实验截图

实验任务(3)附上在debug里实验的截图,并且基于实验结果,作必要的文字说明
内存范围:FFF00H~FFFFFH,显然此处的内存为物理地址,物理地址=段地址×16+段内偏移量。可得该内存范围对应在debug中的输入格式为e fff0:0 ff ,查得日期为1992/01/01

尝试对日期进行修改的,得不能修改,结果如下,由书P13页知,我们向地址C0000~FFFFF的内存单元写入数据的操作是无效的,因为这等于改写了只读存储器中的内容。
实验任务(4)
实验结果为窗口右上角出现彩色小图标
修改后再次查看b810:0 8中的内容发现没有变化。
结论:向地址A0000~BFFFF的内存单元中写入数据,就是向显存中写入数据,这些数据会被显示卡输出到显示器上。
实验二
1、(1)设置初始值
(2)输入程序段

(3)t命令




验证结果如下:

2


前三行的功能:
1、将值2000存入ax寄存器中,2、将ax寄存器中的值赋给ss栈段段寄存器中,3、将栈指针寄存器的值设为10,这样操作后栈顶的物理地址为2000*16H+10=20010H。
思考:从20010H往后存入的数据有08 01 39 0B A3 01,其中08 01 ,39 0B分别对应IP,CS(此处用小端法存储),A3 01查阅资料知是标志寄存器的数据。由此知道栈下不仅存入push的数据,也可以存cs ,ip,标志寄存器的数据。

浙公网安备 33010602011771号