实验五

实验一

 

 

CPU执行程序,程序返回前,data段数据为:

0123h 0456h 0789h 0ABCh 0FDEh 0FDEh 0CBAh 0987h

 

CPU执行程序,程序返回前CS=076C SS=076B DS=076A

 

设程序加载后,code段地址为X,则data段地址为X-2stack地址为X-1

实验二

 

 

CPU执行程序,程序返回前,data段数据为: 0123h 0456h

CPU执行程序,程序返回前CS=076C SS=076B DS=076A

 

设程序加载后,code段地址为X,则data段地址为X-2stack地址为X-1

如果段中数据占N个字节,加载后,该段实际占有的空间有 [(N+15)/16]*16

 

实验三

 

 

CPU执行程序,程序返回前,data段数据为: 0123h 0456h

CPU执行程序,程序返回前CS=076C SS=076E DS=076A

 

设程序加载后,code段地址为X,则data段地址为X+3stack地址为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

 

实验六

 

 

 

用栈来实现逆序

 

 

posted @ 2018-11-24 19:29  Nebulas  阅读(113)  评论(1)    收藏  举报