查看结果。如图43
图43实验结果显示
f五思考与总结
本次实验我们做得是运算类编程实验中二进制双精度加法运算。双精度运算是利用累加器AX先求低十六位和并存入低址单元后求高16位和再存入高址存储单元。由于低位和可能向高位有进位因而高位字相加语句需用ADC指令则低位相加有进位时CF1高位字相加时同时加上CF中的1。这次实验有很多细节需要注意在不注意的情况之下我们出了很多错误后来在老师的指导帮助下完成了实验。
f实验四分支程序设计实验
一实验目的
1掌握分支程序的结构。
2掌握分支程序的设计、调试方法。
二实验设备
TDN8651或TDN8688教学实验系统一台
三实验内容及步骤
1内容
设计一数据块间的搬移程序
设计思想程序要求把内存中一数据区称为源数据块传送到另一存储区称为目的数据块。
注意
当源数据块首址目的块首址时从数据块首地址开始传送数据。
当源数据块首址目的块首址时从数据块末地址开始传送数据。
2实验步骤
1编写实验程序。
2输入程序
STACKSEGMENTSTACK
DW64DUP
STACKENDS
CODESEGMENT
ASSUMECSCODE
STARTMOVCX0010H将0010H传送给CXCX16
MOVSI3100H将3100H传送给SISI3100H
MOVDI3200H将3200H传送给DIDI3200H
fCMPSIDI比较SI和DI的大小SI是否大于DI
JAA2如果zf0且cf0时进行跳转到A2否则不进行跳转
ADDSICX从源数据块末字节开始传送将SI和CX相加在传给SI3100H10H即SI3110H
ADDDICX将DI和CX相加在传给DI3200H10H即DI3210H
DECSI对SI操作数减1减量SISI1
DECDI对DI操作数减1减量DIDI1
A1MOVALSI将3100H内存单元的内容传送ALMOVDIAL将AL传送给3200H内存单元
DECSI对SI操作数减1减量SISI1
DECDI对DI操作数减1减量DIDI1
DECCX对CX操作数减1减量CXCX1
JNEA1如果zf0时进行跳转到A1否则顺序执行
JMPA3无条件跳转到A3
A2MOVALSI将3100H内存单元的内容传送ALMOVDIAL将AL传送给3200H内存单元
INCSI对SI操作数加1加量SISI1
INCDI对DI操作数加1加量DIDI1
DECCX对CX操作数减1减量CXCX1
JNEA2如果zf0时进行跳转到A2否则顺序执行
A3JMPA3顺序执行
CODEENDS
ENDSTART
3检查无误经汇编、连接后装入系统。
4用E命令在以SI为起址的单元中填入16个数。
5G00002000运行实验程序。
6用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同。
7改变SI、DI的取值在进行实验。
f四实验结果
1用E命令填入16个数如图41。
图41输入16个数
f2查看DI为起址的单元中的数据与SI单元中的数据是相同如图42。
图42结果相同
f3将SI3200H、DI3100H进行实验其结果如图43、44。
图43
图44
f五思考与总r