| 数据搜索系统,热门电子元器件搜索 |
|
ST9 数据表(PDF) 24 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
ST9 数据表(HTML) 24 Page - STMicroelectronics |
|
24 / 146 page ![]() 24/146 ST9 USER GUIDE 3.1.7.1 Program Segment We can consider this memory as linear since we can jump anywhere in memory space using the special JPS, CALLS and RETS instructions. The 6-bit CSR register is used to extend the 16-bit address to a 22-bit address by concatena- tion (see Figure 10). To make a fast branch in the same segment, use the common JP, CALL and RET instructions. To branch to another segment using a far call, the use of CALLS saves the current PC value and the CSR value (Code Segment Register) in the stack, before loading the PC and the CSR registers with the new values. Every time the segment changes you have to use the far branch even if you branch from address (n)FFFFh to (n+1)0000h. This is because the program doesn’t manage the 6 high-order bits of the 22-bit program addresses if you don’t use a far branch to change the CSR register value. The script file (described in the Development Tools chapter) allows you to place all your program modules anywhere in a single segment. The far branch instruction adds only 2 to 4 additional cycles compared to a near branch in- struction. Note: In C language, using the small code model (this means only one 64 Kbyte segment is used), all calls use local branches. If more than one segment is used, the large code model is required and all calls use far branches even when branching locally. To avoid far calls in the same seg- ment, the segment to be called has to be declared as static if it is not called from another seg- ment. 3.1.7.1.1 Segment and Offset in Assembler Mode or C Language The Offset represents the address in the segment with 16 bits. If the Segment and the Offset are known, the following syntax is used for the far branches: jps segment,offset ; 6 bits + 16 bits jps symbol ; 22 bits calls segment,offset ; 6 bits + 16 bits calls symbol ; 22 bits calls (R),(rr) ; 6 bits + 16 bits calls (r),(rr) ; 6 bits + 16 bits rets ; 22 bits The assembly tools accept a set of directives which retrieves the elements of a function ad- dress or of a label. The operator SEG (stands for SEGment) allows you to extract the segment number of a label; similarly, the operator SOF (stands for Segment OFfset) allows you to extract the offset of a label within its segment. |
|
链接网址 |
| 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 |