전자부품 데이터시트 검색엔진
  Korean  ▼
ALLDATASHEET.CO.KR

X  

STC89LE53RC 데이터시트(PDF) 152 Page - STCmicro Technology Co,.Ltd

부품명 STC89LE53RC
상세설명  Enhanced 80C51 Central Processing Unit ,6T or 12T per machine cycle
PDF  165 Pages
Scroll/Zoom Zoom In 100%  Zoom Out
제조업체  STC [STCmicro Technology Co,.Ltd]
홈페이지  http://www.stcmicro.com/
Logo STC - STCmicro Technology Co,.Ltd

STC89LE53RC 데이터시트(HTML) 152 Page - STCmicro Technology Co,.Ltd

Back Button STC89LE53RC Datasheet HTML 148Page - STCmicro Technology Co,.Ltd STC89LE53RC Datasheet HTML 149Page - STCmicro Technology Co,.Ltd STC89LE53RC Datasheet HTML 150Page - STCmicro Technology Co,.Ltd STC89LE53RC Datasheet HTML 151Page - STCmicro Technology Co,.Ltd STC89LE53RC Datasheet HTML 152Page - STCmicro Technology Co,.Ltd STC89LE53RC Datasheet HTML 153Page - STCmicro Technology Co,.Ltd STC89LE53RC Datasheet HTML 154Page - STCmicro Technology Co,.Ltd STC89LE53RC Datasheet HTML 155Page - STCmicro Technology Co,.Ltd STC89LE53RC Datasheet HTML 156Page - STCmicro Technology Co,.Ltd Next Button
Zoom Inzoom in Zoom Outzoom out
 152 / 165 page
background image
Parameter Passing
A macro with parameters passed from the main program has the following modified format:
%*DEFINE
(macro_name (parameter_list)) (macro_body)
For example, if the following macro is defined,
%*DEFINE
(CMPA# (VALUE))
(CJNE
A, #%VALUE, $ + 3
)
then the macro call
%CMPA# (20H)
will expand to the following instruction in the .LST file:
CJNE
A, #20H, $ + 3
Although the 8051 does not have a "compare accumulator" instruction, one is easily created using the CJNE
instruction with "$+3" (the next instruction) as the destination for the conditional jump. The CMPA# mnemonic
may be easier to remember for many programmers. Besides, use of the macro unburdens the programmer from
remembering notational details, such as "$+3."
Let's develop another example. It would be nice if the 8051 had instructions such as
JUMP
IF ACCUMULATOR GREATER THAN X
JUMP
IF ACCUMULATOR GREATER THAN OR EQUAL TO X
JUMP
IF ACCUMULATOR LESS THAN X
JUMP
IF ACCUMULATOR LESS THAN OR EQUAL TO X
but it does not. These operations can be created using CJNE followed by JC or JNC, but the details are tricky.
Suppose, for example, it is desired to jump to the label GREATER_THAN if the accumulator contains an ASCII
code greater than "Z" (5AH). The following instruction sequence would work:
CJNE
A, #5BH, $÷3
JNC
GREATER_THAN
The CJNE instruction subtracts 5BH (i.e., "Z" + 1) from the content of A and sets or clears the carry flag
accordingly. CJNE leaves C=1 for accumulator values 00H up to and including 5AH. (Note: 5AH-5BH<0,
therefore C=1; but 5BH-5BH=0, therefore C=0.) Jumping to GREATER_THAN on the condition "not carry"
correctly jumps for accumulator values 5BH, 5CH, 5DH, and so on, up to FFH. Once details such as these are
worked out, they can be simplified by inventing an appropriate mnemonic, defining a macro, and using the macro
instead of the corresponding instruction sequence. Here's the definition for a "jump if greater than" macro:
%*DEFINE
(JGT (VALUE, LABEL))
(CJNE
A, #%VALUE+1, $+3
;JGT
JNC
%LABEL
)
To test if the accumulator contains an ASCII code greater than "Z," as just discussed,the macro would be called as
%JGT
('Z', GREATER_THAN)
ASM51 would expand this into
CJNE
A, #5BH, $+3
;JGT
JNC
GREATER_THAN
The JGT macro is an excellent example of a relevant and powerful use of macros. By using macros, the
programmer benefits by using a meaningful mnemonic and avoiding messy and potentially bug-ridden details.
152



Html Pages

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100  ...More


데이터시트 다운로드

Go To PDF Page


링크 URL



ALLDATASHEET 가 귀하에 도움이 되셨나요?  [ DONATE ] 

Alldatasheet는?   |   광고문의   |   운영자에게 연락하기   |   개인정보취급방침   |   링크 투 데이터시트    |   링크교환   |   제조사별 검색
All Rights Reserved©Alldatasheet.com


Mirror Sites
English : Alldatasheet.com  |   English : Alldatasheet.net  |   Chinese : Alldatasheetcn.com  |   German : Alldatasheetde.com  |   Japanese : Alldatasheet.jp
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