BP45F4NB/BP45FH4NBBP45F4NB/BP45FH4NBPower Bank Flash MCUPower Bank Flash MCUIndirect Addressing Program Example 2 data .section ´data´ adres1 db ? adres2 db ? adres3 db ? adres4 db ? block db ? code .section at 0 ´code´ org 00h start: mov a, 04h ; setup size of block mov block, a mov a, 01h ; setup the memory sector mov mp1h, a mov a, offset adres1 ; Accumulator loaded with first RAM address mov mp1l, a ; setup memory pointer with first RAM address loop: clr IAR1 ; clear the data at address defined by MP1L inc mp1l ; increment memory pointer MP1L sdz block ; check if last memory location has been cleared jmp loop continue: The important point to note here is that in the example shown above, no reference is made to specific Data Memory addresses. Direct Addressing Program Example using extended instructions data .section ´data´ temp db ? code .section at 0 ´code´ org 00h start: lmov a, [m] ; move [m] data to acc lsub a, [m+1] ; compare [m] and [m+1] data snz c ; [m]>[m+1]? jmp continue ; no lmov a, [m] ; yes, exchange [m] and [m+1] data mov temp, a lmov a, [m+1] lmov [m], a mov a, temp lmov [m+1], a continue: Note: Here “m” is a data memory address located in any data memory sectors. For example, m=1F0H, it indicates address 0F0H in Sector 1. Accumulator – ACC The Accumulator is central to the operation of any microcontroller and is closely related with operations carried out by the ALU. The Accumulator is the place where all intermediate results from the ALU are stored. Without the Accumulator it would be necessary to write the result of each calculation or logical operation such as addition, subtraction, shift, etc., to the Data Memory resulting in higher programming and timing overheads. Data transfer operations usually involve the temporary storage function of the Accumulator; for example, when transferring data between one user-defined register and another, it is necessary to do this by passing the data through the Accumulator as no direct transfer between two registers is permitted. Rev. 1.00 52 December 07, 2020 Rev. 1.00 53 December 07, 2020 Document Outline Features CPU Features Peripheral Features General Description Selection Table Block Diagram Pin Assignment Pin Description Level Shift Input/Output Relationship and Reset Condition Absolute Maximum Ratings D.C. Characteristics Operating Voltage Characteristics Operating Current Characteristics Standby Current Characteristics A.C. Characteristics High Speed Internal Oscillator – HIRC – Frequency Accuracy Low Speed Internal Oscillator Characteristics – LIRC Operating Frequency Characteristic Curves System Start Up Time Characteristics Input/Output Characteristics Input/Output (without Multi-power) D.C Characteristics Input/Output (with Multi-power) D.C Characteristics Memory Characteristics LVR/LVD Electrical Characteristics A/D Converter Electrical Characteristics Over/Under Voltage Protection Electrical Characteristics Over Current Protection Electrical Characteristics USB Auto Detection Electrical Characteristics LDO Regulator Electrical Characteristics Level Converter Electrical Characteristics Power-on Reset Characteristics System Architecture Clocking and Pipelining Program Counter Stack Arithmetic and Logic Unit – ALU Flash Program Memory Structure Special Vectors Look-up Table Table Program Example In Circuit Programming – ICP On-Chip Debug Support – OCDS In Application Programming – IAP Data Memory Structure Data Memory Addressing General Purpose Data Memory Special Purpose Data Memory Special Function Register Description Indirect Addressing Registers – IAR0, IAR1, IAR2 Memory Pointers – MP0, MP1L/MP1H, MP2L/MP2H Accumulator – ACC Program Counter Low Byte Register – PCL Look-up Table Registers – TBLP, TBHP, TBLH Option Memory Mapping Register – ORMC Status Register – STATUS Oscillators Oscillator Overview System Clock Configurations Internal High Speed RC Oscillator – HIRC Internal 32kHz Oscillator – LIRC Operating Modes and System Clocks System Clocks System Operation Modes Control Registers Operating Mode Switching Standby Current Considerations Wake-up Watchdog Timer Watchdog Timer Clock Source Watchdog Timer Control Register Watchdog Timer Operation Reset and Initialisation Reset Functions Reset Initial Conditions Input/Output Ports Pull-high Resistors Port A Wake-up I/O Port Control Registers I/O Port Power Source Control I/O Port Source Current Control Pin-shared Functions I/O Pin Structure Programming Considerations Timer Modules – TM Introduction TM Operation TM Clock Source TM Interrupts TM External Pins Programming Considerations Compact Type TM – CTM Compact Type TM Operation Compact Type TM Register Description Compact Type TM Operating Modes Periodic Type TM – PTM Periodic Type TM Operation Periodic Type TM Register Description Periodic Type TM Operation Modes Complementary PWM Output with Dead Time Dead Time Insertion Complementary PWM Registers Analog to Digital Converter A/D Converter Overview A/D Converter Register Description A/D Converter Reference Voltage A/D Converter Input Signals A/D Converter Operation Conversion Rate and Timing Diagram Summary of A/D Conversion Steps Programming Considerations A/D Conversion Function A/D Conversion Programming Examples Universal Serial Interface Module – USIM SPI Interface I2C Interface UART Interface Over Current Protection Over Current Protection Operation Over Current Protection Registers Input Voltage Range OCP OPA and Comparator Offset Calibration Over/Under Voltage Protection OUVP Circuit Operation OUVP Register Description OVP and UVP Comparator Offset calibration USB Auto Detection D1+/D1- and D2+/D2- for Auto Detection USB Auto Detection Registers Interrupts Interrupt Registers Interrupt Operation External Interrupts A/D Converter Interrupt Over Current Protection Interrupt Over Voltage Protection Interrupt Under Voltage Protection Interrupts Multi-function Interrupts Timer Module Interrupts USIM Interrupt Time Base Interrupts LVD Interrupt Interrupt Wake-up Function Programming Considerations Low Voltage Detector – LVD LVD Register LVD Operation Application Circuits Instruction Set Introduction Instruction Timing Moving and Transferring Data Arithmetic Operations Logical and Rotate Operation Branches and Control Transfer Bit Operations Table Read Operations Other Operations Instruction Set Summary Table Conventions Extended Instruction Set Instruction Definition Extended Instruction Definition Package Information 24-pin SSOP (150mil) Outline Dimensions 28-pin SSOP (150mil) Outline Dimensions SAW Type 28-pin QFN (4mm×4mm) Outline Dimensions