这个分支编程的实验和上个循环编程的作业一样都是5.1前后的汇编实验,同样是三个题,很简单就能搞定,不过整理起来实验报告真是一个麻烦事。
实验一
有 3 个字变量
x、y
和
z
,
若
否则,求
z=x+y−1
。
十分基础的分支问题,只需要 cmp 判断
x
和
接着,查看寄存器等相关信息。
可以明确看到数据段从 076A:0 开始,查看数据段内存。
此时我们的数据是
x
小于
结果无误,这种分支没有问题,接着我们调整数据,让
y
小于
此时,结果应该为 CH ,运行完程序并再次查看内存。
结果无误,至此,我们的两个分支都没有问题,实验一完毕。
实验二
有 1 个字节变量
a
和 1 个字变量
若
a
为偶数,则把
若
a
为奇数,则把
和上一个实验一样,换汤不换药,利用一次右移一次左移,与原数判断即可,代码如下:
查看寄存器等相关信息。
如上,数据段内存起始地址为 076A:0 ,查看对应内存。
此时,
a
为偶数,如果
结果正是我们想要的,那么我们修改一下 a 为奇数。
此时,应该被清零的是
的确是 05H 被清零了,至此,实验没毛病,实验二完成。
实验三
有3个字变量
x、y
和
z
,一个字节变量
计算
z=x−y
。
若
z>0
,则
f=1
;
若
z<0
,则
f=−1
;
若
z=0
,则
f=0
。
真是没什么可说的,直接上代码:
查看寄存器等相关信息。
从数据段对应内存 076A:0 起查看内存。
此时
x–y
结果应该是
−1
,所以
z
是
看来这个分支是没有问题的,接着调整数据。
然后运行完程序并查看内存。
此时,
z
结果为 0,
这样的话,
GG,完全没有问题,至此,验证三个分支均无误,实验三完成。
我本不想这么写报告的,实在是太慢了,无奈要求如此,要么不做,要么就好好按着要求做吧……