| 数据搜索系统,热门电子元器件搜索 |
|
ST9 数据表(PDF) 37 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
ST9 数据表(HTML) 37 Page - STMicroelectronics |
|
37 / 146 page ![]() 37/146 ST9 USER GUIDE This “eight bits signed by eight bits unsigned” multiplication with a “sixteen bits signed” result takes a maximum of 36 cycles. There are two divide instructions. The div instruction divides a word by a byte, and returns the quotient and the remainder as the low and the high bytes of the destination respectively. For example: ldw rr0,#31184 ; rr0=#31184 ld r2,#201 ; r2=#201 div rr0,r2 ; rr0=1D9Bh, 1Dh=#29 and 9Bh=#155 This puts the value 155 in r1 (the quotient) and the value 29 (the remainder) in r0, and r2 still contains 201. If the divider is greater than the dividend, nothing is done. If the divisor is zero, a trap is trig- gered that acts like an interrupt request, and uses the vector at locations 2 and 3 in program memory. It is up to you to write the appropriate code to handle this trap. Finally, the numbers to be divided should be such that the quotient be less than 256, that is, can be stored in a single byte. Otherwise, the results are undefined. The usable result is only the data stored in r1 which is 155 (for the previous example), the re- mainder must be divided by the divisor (201) to give more precision (16-bits precision). ldw rr0,#31184 ; rr0=#31184 ld r2,#201 ; r2=#201 div rr0,r2 ; rr0=1D9Bh, 1Dh=#29 the remainder and ; 9Bh=#155 the quotient ld r4,r1 ; r4=9Bh=#155 clr r1 ; rr0=1D00h div rr0,r2 ; rr0=0BC24h, 0BCh=#188 the remainder and ; 24h=#36 the quotient ld r0,r4 ; rr0=09B24h, 09B24h means in fix-point ; with the point in the 16-bits middle ; 09B24h=155.140625 instead of ; #31184/#201=155.1442786 In the best case, the number of cycles required to divide a word by a byte with 16-bits preci- sion is 80 cycles. This program has to manage overflow and divide by zero functions in order to be able to be used. The divws instruction performs one of the sixteen partial divides required to divide a double word by a word, so you need to write a subroutine to perform the division completely. An ex- ample subroutine is given in the ST9 Programming Manual. |
|
链接网址 |
| ALLDATASHEET是否为您带来帮助? [ DONATE ] |
关于 Alldatasheet | 广告服务 | 联系我们 | 隐私政策 | 数据表链接 | 链接交换 | 制造商名单 All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |