运用tms320c54x汇编语言编写定点数运算,浮点数运算程序,运用TMS320C54x汇编语言编写定点数运算、浮点数运算程序...

博客详细解析了如何使用汇编语言实现16位和32位无符号整数的除法操作,以及32位有符号整数的除法。通过减法指令和重复循环,实现无符号除法运算。程序中定义了相应的数据结构和子程序,用于存储分子、分母、商和余数,并演示了调用除法子程序的过程。
摘要由CSDN通过智能技术生成

CALL DivModUI32 ;调用除法子程序

here: B here

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Description: 16 bit by 16 bit Unsigned Integer Divide And Modulus

; 16位除16位的无符号整数除法

.mmregs

STACK: .usect “STACK”,100h

.bss d_Num,1 ;为分子分配单元

.bss d_Den,1 ;为分母分配单元

.bss d_Quot,1 ;为商分配单元

.bss d_Rem,1

.def DivModUI16 ;定义16位除法子程序

.def start

.data

table1: .word 1000

table2: .word 5

.text

DivModUI16: RSBX SXM ; sign extention mode off

LD @d_Num,A ;将分子移到累加器A

RPT #(16–1) ;重复执行下面指令16次

SUBC @d_Den,A ;16次的减法循环,完成除法

STL A,@d_Quot ;将A的结果保存为商

STH A,@d_Rem

RET

start: STM d_NumL,AR2 ;将分子低16位所在单元的首地址传给AR2

STM d_Den,AR3 ;将分子低16位所在单元的首地址传给AR3

MVPD table1,*AR2 ;将table1开始的值传给AR2

MVPD table2,*AR3 ;将table2开始的值传给AR3

CALL DivModUI16 ;调用除法子程序

here: B here

程序分析:DSP做除法运算时,通过减法指令与重复循环指令实现无符号除法运算。需要注意的是,当被除数的绝对值除数的绝对值时,商为整数。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Description: 32 bit by 16 bit signed Integer Divide And Modulus

; 32位除16位有符号除法

.mmregs

STACK: .usect “STACK”,100h

.bss d_NumL,1 ;为分子低16位分配单元

.bss d_NumH,1 ;为分子高16位分配单元

.bss d_Den,1 ;为分母分配单元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值