小命 4.双操作数乘法 用间接寻址方式获得操作数,且 特 辅助寄存器只用AR2~AR5; 点 占用程序空间小; 运行速度快。 例58编制求解y=∑x的程序。 利用双操作数指令可以节省机器周期。迭代次数 越多,节省的机器周期数也越多。本例中,在每次 循环中,双操作数指令都比单操作数指令少用一个 周期,节省的总机器周期数=1T米N(迭代次数)=NT
12 用间接寻址方式获得操作数,且 辅助寄存器只用AR2~AR5; 占用程序空间小; 运行速度快。 4.双操作数乘法 特 点 例5-8 编制求解 的程序。 利用双操作数指令可以节省机器周期。迭代次数 越多,节省的机器周期数也越多。本例中,在每次 循环中,双操作数指令都比单操作数指令少用一个 周期,节省的总机器周期数=1T*N(迭代次数)=NT。 = = 20 i 1 i xi y a
小命 单操作数指令方案双操作数指令方案 LD #0. B LD #0. B STM #a ar2 STM #a AR2 STM #x aR3 STM #x ar3 STM #19, BRC STM #19, BRC rPtb done-1 rPtb done-1 LD AR2+. T: IT MPY *AR2+ AR3+.A: 1T MPY AR3+. A: IT ADD A.B: 1T ADD A B IT done: STH B, @y done: STH B, @y STL B, @y+1 STL B, @y+l
13 单操作数指令方案 双操作数指令方案 LD #0,B LD #0,B STM #a,AR2 STM #a,AR2 STM #x,AR3 STM #x,AR3 STM #19,BRC STM #19,BRC RPTB done-1 RPTB done-1 LD *AR2+,T;1T MPY *AR2+,*AR3+,A;1T MPY *AR3+,A;1T ADD A,B ;1T ADD A,B ;1T done:STH B,@y done:STH B,@y STL B,@y+1 STL B,@y+1
小命 5.长字运算 特 在单个周期内同时利用C总线和D 点 总线,得到32位操作数。 使用长操作数指令时,按指令中给出的地址存取的总 是高16位操作数。这样,有两种数据排列方法: (1)偶地址排列法指令中给出的地址为偶地址,存 储器中低地址存放高16位操作数。 如:DLD*AR3+,A 执行前:A=000000000执行后:A=006 CAC BD90 AR3=0100 AR3=0102 (0100h)=6CAC(高字)(0100h)=6CAC (010h)=BD90(低字)(0101h)=BD904
14 在单个周期内同时利用C总线和D 总线,得到32位操作数。 5.长字运算 特 点 使用长操作数指令时,按指令中给出的地址存取的总 是高16位操作数。这样,有两种数据排列方法: (1)偶地址排列法 指令中给出的地址为偶地址,存 储器中低地址存放高16位操作数。 如: DLD *AR3+,A 执行前:A=00 0000 0000 执行后:A=00 6CAC BD90 AR3=0100 AR3=0102 (0100h)=6CAC(高字) (0100h)=6CAC (0101h)=BD90(低字) (0101h)=BD90
小命 (2)奇地址排列法指令中给出的地址为奇地址,存储器中 低地址存放低16位操作数。 如: DLD AR3+. A 执行前:A=000000000执行后:A=00B906CAC AR3=0101 AR3=0103 (0100h)=6CAC(低字)(0100h)=6CAC (0101h)=BD90(高字)(0101h)=BD90 推荐采用偶地址排列法,将高16位操作数放在偶地址存储单元 中。如 程序存储器 .1ong12345678h ;偶地址:1234 ;奇地址:5678 数据存储器 bss hi. 2 1;偶地址:xhi ↓;奇地址:x1o 15 变量名称字长页邻接偶地址排列法
15 (2)奇地址排列法 指令中给出的地址为奇地址,存储器中 低地址存放低16位操作数。 如: DLD *AR3+,A 执行前:A=00 0000 0000 执行后:A=00 BD90 6CAC AR3=0101 AR3=0103 (0100h)=6CAC(低字) (0100h)=6CAC (0101h)=BD90(高字) (0101h)=BD90 推荐采用偶地址排列法,将高16位操作数放在偶地址存储单元 中。如: 程序存储器 .long 12345678 h ;偶地址:1234 ;奇地址:5678 数据存储器 .bss xhi, 2, 1, 1 ;偶地址:xhi ↓ ↓ ↓ ↓ ;奇地址:xlo 变量名称 字长 页邻接 偶地址排列法
小命 例5-9计算Z32=x32+Y32° 标准运算 长字运算 LD @xhi. 16.A DLD @xhi. A ADDS @XIO. A DADD @yhi, A ADD @yhi. 16.A DST A @zhi ADDS @ ylo, A (3个字,3个T) STH A,@Zhi STL A @Zlo (6个字,6个T)
16 例5-9 计算Z32=X32+Y32。 标准运算 长字运算 LD @xhi,16,A DLD @xhi,A ADDS @xlo,A DADD @yhi,A ADD @yhi,16,A DST A,@zhi ADDS @ylo,A (3个字,3个T) STH A,@Zhi STL A,@Zlo (6个字,6个T)