实验五
实验一

CPU执行程序,程序返回前,data段数据为:
0123h 0456h 0789h 0ABCh 0FDEh 0FDEh 0CBAh 0987h
CPU执行程序,程序返回前CS=076C SS=076B DS=076A
设程序加载后,code段地址为X,则data段地址为X-2,stack地址为X-1
实验二

CPU执行程序,程序返回前,data段数据为: 0123h 0456h
CPU执行程序,程序返回前CS=076C SS=076B DS=076A
设程序加载后,code段地址为X,则data段地址为X-2,stack地址为X-1
如果段中数据占N个字节,加载后,该段实际占有的空间有 [(N+15)/16]*16。
实验三

CPU执行程序,程序返回前,data段数据为: 0123h 0456h
CPU执行程序,程序返回前CS=076C SS=076E DS=076A
设程序加载后,code段地址为X,则data段地址为X+3,stack地址为X+4
实验四
只有三能够执行。因为没有end start,ip=0执行,而不是从start开始执行.只有(3)是以指令放在段首的。
在别人博客https://blog.csdn.net/lijun5635/article/details/7918392中
我也看到如下解释
start: 作为汇编程序的一个标号,定义了程序的入口,既程序从start:处开始执行。
若程序的第一条指令就是程序的入口,则start可以缺省。
start 使用结构如下:
-----------------------------------------
start: \\定义程序的入口
...
end start \\定义程序段结束
-----------------------------------------
其中 start 可以用其他字符代替,但是对应的end start 中的start 也必须用同字符代替。
若第一个strat缺省,则end strat中的 strat 也必须去掉。
实验五

先把a1中单数据存到dx中,再加上b1的数据,最后把和放到c中

通过d命令验证成功实现数据相加,并保存到c中
实验六

用栈来实现逆序


浙公网安备 33010602011771号