| 전자부품 데이터시트 검색엔진 |
|
STC89LE53RC 데이터시트(PDF) 145 Page - STCmicro Technology Co,.Ltd |
|
|
|||||||||||||||||||||||||||||
STC89LE53RC 데이터시트(HTML) 145 Page - STCmicro Technology Co,.Ltd |
|
145 / 165 page ![]() To create a 1000-byte buffer in external RAM starting at 4000H, the following directives could be used: XSTART EQU 4000H XLENGTH EQU 1000 XSEG AT XSTART XBUFFER: DS XLENGTH This buffer could be cleared with the following instruction sequence: MOV DPTR, #XBUFFER LOOP: CLR A MOVX @DPTR, A INC DPTR MOV A, DPL CJNE A, #LOW (XBUFFER + XLENGTH + 1), LOOP MOV A, DPH CJNE A, #HIGH (XBUFFER + XLENGTH + 1), LOOP (continue) This is an excellent example of a powerful use of ASM51's operators and assemble-time expressions. Since an instruction does not exist to compare the data pointer with an immediate value, the operation must be fabricated from available instructions. Two compares are required, one each for the high- and low-bytes of the DPTR. Furthermore, the compare-and-jump-if-not-equal instruction works only with the accumulator or a register, so the data pointer bytes must be moved into the accumulator before the CJNE instruction. The loop terminates only when the data pointer has reached XBUFFER + LENGTH + 1. (The "+1" is needed because the data pointer is incremented after the last MOVX instruction.) DBIT The format for the DBIT (define bit) directive is, [label:] DBIT expression The DBIT directive reserves space in bit units. It can be used only in a BIT segment. The expression must be a valid assemble-time expression with no forward references. When the DBIT statement is encountered in a program, the location counter of the current (BIT) segment is incremented by the value of the expression. Note that in a BIT segment, the basic unit of the location counter is bits rather than bytes. The following directives creat three flags in a absolute bit segment: BSEG ;BIT SEGMENT (ABSOLUTE) KEFLAG: DBIT 1 ;KEYBOARD STATUS PRFLAG: DBIT 1 ;PRINTER STATUS DKFLAG: DBIT 1 ;DISK STATUS Since an address is not specified with BSEG in the example above, the address of the flags defined by DBIT could be determined (if one wishes to to so) by examining the symbol table in the .LST or .M51 files. If the definitions above were the first use of BSEG, then KBFLAG would be at bit address 00H (bit 0 of byte address 20H). If other bits were defined previously using BSEG, then the definitions above would follow the last bit defined. DB (Define Byte) The format for the DB (define byte) directive is, [label:] DB expression [, expression] […] The DB directive initializes code memory with byte values. Since it is used to actually place data constants in code memory, a CODE segment must be active. The expression list is a series of one or more byte values (each of which may be an expression) separated by commas. 145 |
|
링크 URL |
| 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 |