1. MACR *AR3-, *AR4-, A, B
指令执行前 00 0000 1000H 00 0000 2200H 0003H 0 0100H 0200H 0345H 0400H 指令执行后 00 0000 1000H 00 000D 0000H 0345H 0 00FFH 01FFH 0345H 0400H A B T FRCT AR3 AR4 0100H 0200H A B T FRCT AR3 AR4 0100H 0200H (1) R[A+(AR1)*(AR2)] ? B
R[1000H+0345H*0400H]=R[1000H+D,1400H]=R[D,2400H]=D,0000H ? B (2) (AR1)=0345H ? T
(3) AR1-1 ? AR1=00FFH, AR2-1 ? AR2=01FFH 2. MAS *AR1+, *AR2+, A, B
指令执行前 00 002F 2850H 00 0000 2200H 0003H 1 0100H 0200H 0345H 0400H 指令执行后 00 002F 2850H 00 0015 0050H 0345H 1 0101H 0201H 0345H 0400H A B T FRCT AR1 AR2 0100H 0200H A B T FRCT AR1 AR2 0100H 0200H (1) {A-[(AR1)×(AR2)]<<1}? B (AR1)×(AR2)=0345H×0400H=D,1400H D1400H<<1=1A,2800H
2F,2850H-1A,2800H=15,0050H?B
(2) (AR1) ? T=0345H (3) AR1+1?AR1=0101H,AR2+1 ?AR2=0201H 3. DADD *AR1-, A, B
指令执行前 指令执行后 00 8006 2090H 00 8006 2090H A 00 0000 0000H B 00 B55B 33C3H 055F H 055DH AR1 1 1 C16 1333H 055EH 1333H 3555H 3555H 055FH 5777H 0560H 5777H 7999H 0561H 7999H A B AR1 C16 055EH 055FH 0560H 0561H A 8006 2090H + (AR1) 3555 1333H = B55B 33C3H ? B
(练习). LDM *AR1, A
DST B, *AR2+ BIT *AR1, 12
指令执行前 00 0000 0000H 00 6500 F009H X 1882H 1882H 0999H 2700H 0516H 0333H 指令执行后 00 0000 0999H 00 6500 F009H 1 0002H 1884H 0999H 2700H 6500H F009H A B TC AR1 AR2 0002H 0082H 1882H 1883H A B TC AR1 AR2 0002H 0082H 1882H 1883H (1) LDM的真实寻址是:(0002H),所以(0002H)=0999H ? A=00 0000 0999H,
0002H ? AR1=0002H
(2) BH=6500H ? (1882H) BL=F009H ? (1883H) AR2+2 ? AR2=1884H
(3) (AR1)(15 - 12)=(0002H)(3)=0999H(3) = 1001B(3) = 1 ? TC
4. LDM *AR1, A
BIT *AR1, 7 MIN B STH A, 2
指令执行前 00 0000 0000H 00 0050 F900H 1 X 10E2H 0999H 2700H 0516H 0333H 指令执行后 00 0000 2700H 00 0000 2700H 1 1 0062H 0999H 2700H 0000H 0333H A B DP TC AR1 0002H 0062H 0082H 10E2H A B DP TC AR1 0002H 0062H 0082H 10E2H (1) MMR间接寻址:
AR1 = 10E2H = 0001,0000,1110,0010B
?0000,0000,0|110,0010B = 0062H ? AR1
(AR1) = ( 0062H ) = 2700H ? A
(2) (AR1)(15-7) = (2700H)(8)
= (0010,0111,0000,0000B) (8) = 1 ? TC (3) A[2700H] < B[50,F900H]
A[2700H] ? B
(4) 即STH A, @2,所以:Hi(A) = 0000H ? (0082H)
??355?55?23????63?的乘积B?1.编写汇编程序,计算矩阵A??和????85?755???251???c11c1?2C?AB???。 cc?212?2.title “matrix” .mmregs .bss a1,3 .bss a2,3 .bss b1,3 .bss b2,3 .bss c, 4 .data
table: word 55, -2, 3, 85, -75, 5 word -35, -6,25, 5, 3, 1 .text
start: STM #a1, AR1 RPT #11
MVPD table, *AR1+
STM #a1, AR2 STM #a2, AR3 STM #b1, AR4 STM #b2, AR5 STM #c, AR6
RSBX FRCT
RPTZ A, #2
MAC *AR2+, *AR4+, A, B STH B, *AR6+ ; c11
STM #a1, AR2 STM #b1, AR4
RPTZ A, #2
MAC *AR2+, *AR5+, A, B STH B, *AR6+ ; c12
RPTZ A, #2
MAC *AR3+, *AR4+, A, B STH B, *AR6+ ; c21
STM #a2, AR3 STM #b2, AR5
RPTZ A, #2
MAC *AR3+, *AR5+, A, B STH B, *AR6 ; c22
.end
2.编写汇编程序,求数列x???19,27,5?和y?{36,?23,?18}相应元素的最大值,结果保存为数列w?{36,27,5}。
(至少需写出关键伪指令和指令步骤)
(附:指令“MAX dst”的功能代数式为max(?,?)?dst)
.title “compare.asm” .mmregs
.bss x,3 .bss y,3 .bss w,3
.data
table: .word -19, 27, 5, 36, -23, -18,
.text
start: STM #2, AR0
STM #x, AR1 STM #x, AR2 STM #y, AR3 RPT #5
MVPD table, *AR1+ ; establisha vector x & y, then AR1 point to w
loop: LD *AR2+, A
LD *AR3+, B MAX B
STL B, *AR1+ ; store result to w BANZ loop,*AR0-
end: B end
.end
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科dsp指令试题和答案 全文阅读和word下载服务。
相关推荐: