The document discusses the ARM instruction set. It begins by defining the instruction set and describing the three states of operation: compiler, assembly, and object code. It then describes various types of instructions like data processing, data transfer, and control flow instructions. The rest of the document provides details on ARM characteristics, registers, conditional execution, addressing modes, and examples of instructions for common operations.
Here are the steps:
1. MUL BL
- AL (85H) is multiplied by BL (35H)
- The 16-bit result (1B89H) is stored in AX, with the lower byte in AL and the higher byte in AH
So after the multiplication, AX = 1B89H.
Ex2: Assume that each instruction starts from these values:
DX:AX = 1234H, BX = 57H
1. DIV BX → Quotient in AX, Remainder in DX
The ARM instruction set defines how the CPU is controlled by software through instructions. It includes various types of instructions like data processing, data transfer, and control flow instructions. ARM uses 32-bit instructions and is heavily based on registers. It has 37 registers total. The ARM architecture is load/store, meaning there is no direct memory access - only load and store instructions can access memory. Instructions can conditionally execute and often use three operands.
This document provides information on 8088 microprocessor instruction set. It discusses:
1) The basic components of a program including instructions and machine code.
2) Examples of instruction formats and operations for data transfer, arithmetic, logical, and shift instructions.
3) Details on multiplication and division instructions including examples of multiplying and dividing operations.
4) Key benefits of assembly language such as taking up less memory and executing faster than high-level languages.
This document provides an overview of memory and registers in the 8051 microcontroller. It discusses the on-chip ROM and RAM memory, as well as the various registers including the 8-bit registers (A, B, R0-R7) and 16-bit registers (DPTR, PC). It also covers the register banks and stack area in RAM, as well as data types and directives like DB and EQU that can be used to define data. Finally, it discusses addressing modes and instruction formats for the 8051 assembly language.
The document provides instructions for using an LCD display with a PIC microcontroller. It describes connecting the LCD to the microcontroller in 4-bit mode to save pins. It includes the LCD initialization routine, functions for sending data and commands to the LCD, and positioning the cursor. In the main program, it reads analog sensor values, controls fan speed with PWM, and displays the values and fan speed on the LCD at different lines and positions on the screen.
The document discusses the details of a mid term exam for a MIPS programming course. It provides information on the date, time, location, and structure of the exam. It also contains two sample exam questions and details that the exam will contain 20 marks worth of questions split into two sections of 5 questions each worth 4 marks.
The document then shifts to discussing various topics relating to single cycle processor design, including performance metrics, the design process, MIPS instruction formats, and how to implement different instructions like addition, subtraction, and comparisons in an ALU. It provides register transfer level descriptions and examines the hardware required to execute instructions in a single cycle.
The document discusses the ARM instruction set. It begins by defining the instruction set and describing the three states of operation: compiler, assembly, and object code. It then describes various types of instructions like data processing, data transfer, and control flow instructions. The rest of the document provides details on ARM characteristics, registers, conditional execution, addressing modes, and examples of instructions for common operations.
Here are the steps:
1. MUL BL
- AL (85H) is multiplied by BL (35H)
- The 16-bit result (1B89H) is stored in AX, with the lower byte in AL and the higher byte in AH
So after the multiplication, AX = 1B89H.
Ex2: Assume that each instruction starts from these values:
DX:AX = 1234H, BX = 57H
1. DIV BX → Quotient in AX, Remainder in DX
The ARM instruction set defines how the CPU is controlled by software through instructions. It includes various types of instructions like data processing, data transfer, and control flow instructions. ARM uses 32-bit instructions and is heavily based on registers. It has 37 registers total. The ARM architecture is load/store, meaning there is no direct memory access - only load and store instructions can access memory. Instructions can conditionally execute and often use three operands.
This document provides information on 8088 microprocessor instruction set. It discusses:
1) The basic components of a program including instructions and machine code.
2) Examples of instruction formats and operations for data transfer, arithmetic, logical, and shift instructions.
3) Details on multiplication and division instructions including examples of multiplying and dividing operations.
4) Key benefits of assembly language such as taking up less memory and executing faster than high-level languages.
This document provides an overview of memory and registers in the 8051 microcontroller. It discusses the on-chip ROM and RAM memory, as well as the various registers including the 8-bit registers (A, B, R0-R7) and 16-bit registers (DPTR, PC). It also covers the register banks and stack area in RAM, as well as data types and directives like DB and EQU that can be used to define data. Finally, it discusses addressing modes and instruction formats for the 8051 assembly language.
The document provides instructions for using an LCD display with a PIC microcontroller. It describes connecting the LCD to the microcontroller in 4-bit mode to save pins. It includes the LCD initialization routine, functions for sending data and commands to the LCD, and positioning the cursor. In the main program, it reads analog sensor values, controls fan speed with PWM, and displays the values and fan speed on the LCD at different lines and positions on the screen.
The document discusses the details of a mid term exam for a MIPS programming course. It provides information on the date, time, location, and structure of the exam. It also contains two sample exam questions and details that the exam will contain 20 marks worth of questions split into two sections of 5 questions each worth 4 marks.
The document then shifts to discussing various topics relating to single cycle processor design, including performance metrics, the design process, MIPS instruction formats, and how to implement different instructions like addition, subtraction, and comparisons in an ALU. It provides register transfer level descriptions and examines the hardware required to execute instructions in a single cycle.
The document discusses numerical bases used in programming such as hexadecimal, binary, and BCD. It provides examples of converting between decimal, binary, hexadecimal and BCD representations of numbers. It also summarizes common registers, memory mapping, addressing modes, and basic instructions of the 8051 microcontroller.
The 4-bit CPU was designed to execute 18 distinct operations from a lookup table. It was tested by executing an instruction set that performed operations like load, store, add, and jump instructions. The accumulator and program counter displays were observed after each instruction to verify the correct operations. Various components like a RAM, ALU, program counter, and decoders were used in the design. The group members demonstrated different parts of the instruction set to verify the CPU was functioning properly.
This program demonstrates a simple console interface to call FTP2 in a batch environment, allowing the operator to retry a failed process. This is most useful for situations where receiving servers might be down for short periods of time and thus unable to receive a file transmission on the first attempt.
The document provides an overview of the instruction set architectures (ISA) of two microprocessors: the Relatively Simple CPU and the 8085 microprocessor. It describes the memory models, register sets, and instruction sets of each. The 8085 has a more complete instruction set than the Relatively Simple CPU, making it more suitable for applications like consumer appliances. Both ISAs specify the machine-level instructions, registers, and memory interaction capabilities of their respective microprocessors.
The document discusses different types of machine instructions including data transfer, data manipulation, and program control instructions. It also covers instruction encoding, where the operation code and operands are encoded into a binary pattern to specify the instruction. Instructions can be encoded into a single word or multiple words depending on the operands and addressing modes used. Encoding instructions into a fixed number of words results in a RISC architecture, while allowing variable length instructions creates a CISC architecture.
This document discusses MIPS programming and assembly language. It begins with an overview of MIPS architecture and registers. It then covers machine language formats, operands, and addressing modes. Examples are provided for different instruction types like R-type, I-type, and J-type. Control flow instructions like branching and jumping are explained. High-level programming constructs like if/else statements and loops are translated to MIPS assembly code. Finally, arrays are introduced and how to access elements using a base register and offsets.
1. The document discusses basic programming of the 8085 microprocessor. It covers the different types of programming languages including machine language, assembly language, and high-level languages.
2. The 8085 instruction set is classified into different groups like data transfer, arithmetic, logical, branch, and machine control instructions. Common instructions like MOV, ADD, SUB, and CALL are described.
3. The document provides examples of 8085 programs and instructions to load data, perform arithmetic operations, manage the stack, handle I/O, and control program flow. It also discusses assembler format and use of registers like the accumulator, flag register, and stack pointer.
Arm Cortex material Arm Cortex material3222886.pptManju Badiger
The document discusses instruction sets for the Cortex-M3 processor. It describes the basic syntax and formatting of assembly language instructions, including opcodes, operands, labels, comments. It provides examples of common instructions for data movement between registers and memory, such as MOV, LDR, STR. It also covers arithmetic instructions like ADD, SUB, MUL, and branch instructions like B, BX. Rotations are only right rotations because the ARM architecture does not support left rotations of registers due to asymmetric register sizes.
This document describes how to interface an LCD display with an Atmega 32 microcontroller. It provides details on the pin descriptions of a 16x2 LCD, how to send commands and data to the LCD by selecting the appropriate registers, a code example in C to initialize and write text to the LCD, and screenshots of the code running in Proteus simulation software displaying "AVR 32" and "Atmega32" on the LCD. It also lists common LCD display commands.
The document summarizes information about liquid crystal displays (LCDs), including:
- LCDs are replacing LED displays due to declining prices, ability to display text/graphics, and ease of programming text/graphics.
- It describes the pin connections and functions of an LCD, including power supply pins, data/command selection pins, data bus pins, and enable pin.
- It provides notes on programming an LCD, including using the busy flag pin to check if the LCD is busy before writing data.
This document describes interfacing an LCD display and 4x4 keypad with a PIC microcontroller. It explains the basics of LCD operation including control lines and data bus. It also explains how a 4x4 matrix keypad works by scanning rows and columns to detect key presses. Programming code is provided to initialize the LCD and keypad interfaces as well as detect and identify keys pressed.
This document contains a practice exam for the ECET 330 course. It includes 10 multiple choice questions covering topics like memory, CPU architecture, assembly language, and microcontroller programming. It also includes 5 programming problems to write code to perform tasks like adding values from two memory locations, implementing subroutines, setting bits, array operations, and using delays in a for loop.
The document discusses the 8085 microprocessor. It describes the internal structure of the 8085 including the accumulator, flag register, general purpose registers, stack pointer and program counter. It also covers the instruction set of 8085 including data transfer, arithmetic, logical, branching and machine control instructions as well as addressing modes, instruction format and timing.
SIMD machines — machines capable of evaluating the same instruction on several elements of data in parallel — are nowadays commonplace and diverse, be it in supercomputers, desktop computers or even mobile ones. Numerous tools and libraries can make use of that technology to speed up their computations, yet it could be argued that there is no library that provides a satisfying minimalistic, high-level and platform-agnostic interface for the C++ developer.
This document describes the design and implementation of a basic computer called SAYEH. It includes descriptions of the CPU components like the register file, program counter, instruction register, and ALU. It provides details on the 35 instructions in SAYEH's instruction set and describes the datapath and hierarchical structure. The datapath connects the program counter, instruction register, register file, ALU, and other components. VHDL code is provided for some of the CPU components like the program counter, addressing unit, and register file.
The document compares microprocessors and microcontrollers and provides details about the 8051 microcontroller architecture. It describes that microcontrollers contain a microprocessor, memory, I/O interfaces and peripheral devices while microprocessors only contain an ALU, control unit and registers. It then provides details about the 8051 architecture such as its ports, registers, memory organization, and instruction set which includes data transfer, arithmetic, logical and I/O instructions.
- Liquid crystal displays (LCDs) contain small dots that can be controlled to display images or text. Some LCDs contain a controller chip like the HD44780 to simplify displaying alphanumeric text.
- The HD44780 controller chip allows data to be sent in 8-bit or 4-bit mode through control lines like RS, R/W, EN, and data lines DB0-DB7.
- The mikroC library provides functions to initialize and write text or commands to an LCD using the 4-bit mode with functions like Lcd_Init(), Lcd_Out(), and Lcd_Cmd().
This document discusses basic digital concepts including digital circuits, binary, hexadecimal, microcontroller registers, addressing modes, and examples of instructions used in microcontroller programming. It covers:
1) How a digital circuit outputs either 5V or 0V depending on a 1 or 0 bit.
2) Conversions between decimal, binary, and hexadecimal numbering systems.
3) Microcontroller registers that can store and operate on 8-bit binary words like the accumulator, B register, general purpose registers, and more.
4) Addressing modes used in instructions like register addressing, immediate addressing, direct addressing, indirect addressing through registers, and 16-bit addresses.
5) How the microcontroller fetches
Gowtham Thamilarasu is a senior embedded design engineer at Sparks Automations. The document discusses Arduino and embedded systems. It includes sections on Arduino hardware, programming, digital and analog input/output, serial communication, and examples of using Arduino to control devices like LCD displays and send messages via GSM. The document provides an overview of key Arduino concepts for engineers and programmers.
This document contains a presentation on microprocessors and assembly language programming. It includes sections on what a microcomputer is, the microprocessor architecture including the ALU and control unit, programming models and registers, examples of data in registers, the flags register and how instructions affect flags. It also includes two assembly language programs, one to check if an input is a digit, capital letter or small letter, and another to check if a number is even or odd.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
The document discusses numerical bases used in programming such as hexadecimal, binary, and BCD. It provides examples of converting between decimal, binary, hexadecimal and BCD representations of numbers. It also summarizes common registers, memory mapping, addressing modes, and basic instructions of the 8051 microcontroller.
The 4-bit CPU was designed to execute 18 distinct operations from a lookup table. It was tested by executing an instruction set that performed operations like load, store, add, and jump instructions. The accumulator and program counter displays were observed after each instruction to verify the correct operations. Various components like a RAM, ALU, program counter, and decoders were used in the design. The group members demonstrated different parts of the instruction set to verify the CPU was functioning properly.
This program demonstrates a simple console interface to call FTP2 in a batch environment, allowing the operator to retry a failed process. This is most useful for situations where receiving servers might be down for short periods of time and thus unable to receive a file transmission on the first attempt.
The document provides an overview of the instruction set architectures (ISA) of two microprocessors: the Relatively Simple CPU and the 8085 microprocessor. It describes the memory models, register sets, and instruction sets of each. The 8085 has a more complete instruction set than the Relatively Simple CPU, making it more suitable for applications like consumer appliances. Both ISAs specify the machine-level instructions, registers, and memory interaction capabilities of their respective microprocessors.
The document discusses different types of machine instructions including data transfer, data manipulation, and program control instructions. It also covers instruction encoding, where the operation code and operands are encoded into a binary pattern to specify the instruction. Instructions can be encoded into a single word or multiple words depending on the operands and addressing modes used. Encoding instructions into a fixed number of words results in a RISC architecture, while allowing variable length instructions creates a CISC architecture.
This document discusses MIPS programming and assembly language. It begins with an overview of MIPS architecture and registers. It then covers machine language formats, operands, and addressing modes. Examples are provided for different instruction types like R-type, I-type, and J-type. Control flow instructions like branching and jumping are explained. High-level programming constructs like if/else statements and loops are translated to MIPS assembly code. Finally, arrays are introduced and how to access elements using a base register and offsets.
1. The document discusses basic programming of the 8085 microprocessor. It covers the different types of programming languages including machine language, assembly language, and high-level languages.
2. The 8085 instruction set is classified into different groups like data transfer, arithmetic, logical, branch, and machine control instructions. Common instructions like MOV, ADD, SUB, and CALL are described.
3. The document provides examples of 8085 programs and instructions to load data, perform arithmetic operations, manage the stack, handle I/O, and control program flow. It also discusses assembler format and use of registers like the accumulator, flag register, and stack pointer.
Arm Cortex material Arm Cortex material3222886.pptManju Badiger
The document discusses instruction sets for the Cortex-M3 processor. It describes the basic syntax and formatting of assembly language instructions, including opcodes, operands, labels, comments. It provides examples of common instructions for data movement between registers and memory, such as MOV, LDR, STR. It also covers arithmetic instructions like ADD, SUB, MUL, and branch instructions like B, BX. Rotations are only right rotations because the ARM architecture does not support left rotations of registers due to asymmetric register sizes.
This document describes how to interface an LCD display with an Atmega 32 microcontroller. It provides details on the pin descriptions of a 16x2 LCD, how to send commands and data to the LCD by selecting the appropriate registers, a code example in C to initialize and write text to the LCD, and screenshots of the code running in Proteus simulation software displaying "AVR 32" and "Atmega32" on the LCD. It also lists common LCD display commands.
The document summarizes information about liquid crystal displays (LCDs), including:
- LCDs are replacing LED displays due to declining prices, ability to display text/graphics, and ease of programming text/graphics.
- It describes the pin connections and functions of an LCD, including power supply pins, data/command selection pins, data bus pins, and enable pin.
- It provides notes on programming an LCD, including using the busy flag pin to check if the LCD is busy before writing data.
This document describes interfacing an LCD display and 4x4 keypad with a PIC microcontroller. It explains the basics of LCD operation including control lines and data bus. It also explains how a 4x4 matrix keypad works by scanning rows and columns to detect key presses. Programming code is provided to initialize the LCD and keypad interfaces as well as detect and identify keys pressed.
This document contains a practice exam for the ECET 330 course. It includes 10 multiple choice questions covering topics like memory, CPU architecture, assembly language, and microcontroller programming. It also includes 5 programming problems to write code to perform tasks like adding values from two memory locations, implementing subroutines, setting bits, array operations, and using delays in a for loop.
The document discusses the 8085 microprocessor. It describes the internal structure of the 8085 including the accumulator, flag register, general purpose registers, stack pointer and program counter. It also covers the instruction set of 8085 including data transfer, arithmetic, logical, branching and machine control instructions as well as addressing modes, instruction format and timing.
SIMD machines — machines capable of evaluating the same instruction on several elements of data in parallel — are nowadays commonplace and diverse, be it in supercomputers, desktop computers or even mobile ones. Numerous tools and libraries can make use of that technology to speed up their computations, yet it could be argued that there is no library that provides a satisfying minimalistic, high-level and platform-agnostic interface for the C++ developer.
This document describes the design and implementation of a basic computer called SAYEH. It includes descriptions of the CPU components like the register file, program counter, instruction register, and ALU. It provides details on the 35 instructions in SAYEH's instruction set and describes the datapath and hierarchical structure. The datapath connects the program counter, instruction register, register file, ALU, and other components. VHDL code is provided for some of the CPU components like the program counter, addressing unit, and register file.
The document compares microprocessors and microcontrollers and provides details about the 8051 microcontroller architecture. It describes that microcontrollers contain a microprocessor, memory, I/O interfaces and peripheral devices while microprocessors only contain an ALU, control unit and registers. It then provides details about the 8051 architecture such as its ports, registers, memory organization, and instruction set which includes data transfer, arithmetic, logical and I/O instructions.
- Liquid crystal displays (LCDs) contain small dots that can be controlled to display images or text. Some LCDs contain a controller chip like the HD44780 to simplify displaying alphanumeric text.
- The HD44780 controller chip allows data to be sent in 8-bit or 4-bit mode through control lines like RS, R/W, EN, and data lines DB0-DB7.
- The mikroC library provides functions to initialize and write text or commands to an LCD using the 4-bit mode with functions like Lcd_Init(), Lcd_Out(), and Lcd_Cmd().
This document discusses basic digital concepts including digital circuits, binary, hexadecimal, microcontroller registers, addressing modes, and examples of instructions used in microcontroller programming. It covers:
1) How a digital circuit outputs either 5V or 0V depending on a 1 or 0 bit.
2) Conversions between decimal, binary, and hexadecimal numbering systems.
3) Microcontroller registers that can store and operate on 8-bit binary words like the accumulator, B register, general purpose registers, and more.
4) Addressing modes used in instructions like register addressing, immediate addressing, direct addressing, indirect addressing through registers, and 16-bit addresses.
5) How the microcontroller fetches
Gowtham Thamilarasu is a senior embedded design engineer at Sparks Automations. The document discusses Arduino and embedded systems. It includes sections on Arduino hardware, programming, digital and analog input/output, serial communication, and examples of using Arduino to control devices like LCD displays and send messages via GSM. The document provides an overview of key Arduino concepts for engineers and programmers.
This document contains a presentation on microprocessors and assembly language programming. It includes sections on what a microcomputer is, the microprocessor architecture including the ALU and control unit, programming models and registers, examples of data in registers, the flags register and how instructions affect flags. It also includes two assembly language programs, one to check if an input is a digit, capital letter or small letter, and another to check if a number is even or odd.
Similar to ATmega324-Chap4-Assembly-Programming.pdf (20)
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Project Management Semester Long Project - Acuityjpupo2018
Acuity is an innovative learning app designed to transform the way you engage with knowledge. Powered by AI technology, Acuity takes complex topics and distills them into concise, interactive summaries that are easy to read & understand. Whether you're exploring the depths of quantum mechanics or seeking insight into historical events, Acuity provides the key information you need without the burden of lengthy texts.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Webinar: Designing a schema for a Data WarehouseFederico Razzoli
Are you new to data warehouses (DWH)? Do you need to check whether your data warehouse follows the best practices for a good design? In both cases, this webinar is for you.
A data warehouse is a central relational database that contains all measurements about a business or an organisation. This data comes from a variety of heterogeneous data sources, which includes databases of any type that back the applications used by the company, data files exported by some applications, or APIs provided by internal or external services.
But designing a data warehouse correctly is a hard task, which requires gathering information about the business processes that need to be analysed in the first place. These processes must be translated into so-called star schemas, which means, denormalised databases where each table represents a dimension or facts.
We will discuss these topics:
- How to gather information about a business;
- Understanding dictionaries and how to identify business entities;
- Dimensions and facts;
- Setting a table granularity;
- Types of facts;
- Types of dimensions;
- Snowflakes and how to avoid them;
- Expanding existing dimensions and facts.
OpenID AuthZEN Interop Read Out - AuthorizationDavid Brossard
During Identiverse 2024 and EIC 2024, members of the OpenID AuthZEN WG got together and demoed their authorization endpoints conforming to the AuthZEN API
Nordic Marketo Engage User Group_June 13_ 2024.pptx
ATmega324-Chap4-Assembly-Programming.pdf
1. Chapter 4
Assembly Language
How to write a program
The ATmega324 Microcontroller
Nguyễn Trung Hiếu 1
Nguyễn Trung Hiếu
Ref: Giáo trình Vi Xử Lý, BMĐT
2. Instruction Format
[LABEL] Mnemonic [Op1][Op2] [;comment]
• […]: optional
• Op: operand
• Example:
➢LOOP: INC R1 ; R1 R1 + 1
➢ LDI R16,20 ; R16 20
➢ BREQ LOOP ; LOOP is name of label, Operand1
Nguyễn Trung Hiếu 2
4. Assembler Directives
• Instructions for the compiler, not assembly
• Control the assembler, don't create any code
• The leading dot must be in column 1 of the line
• Segment:
➢ Everywhere
➢ Header
➢ Code
➢ EEPROM
➢ SRAM
Nguyễn Trung Hiếu 4
5. Assembler Directives: Everywhere
Nguyễn Trung Hiếu 5
.ORG
Defines the address within the respective segment, where
the assembler assembles to
syntax: .ORG 0x0000
.INCLUDE
Includes a file and assembles its content, just like its content
would be part of the calling file
syntax: .INCLUDE <M324PDEF.inc>
.EXIT
End of the assembler-source code
(stops the assembling process)
.LIST
Switches the listing to the .LST-file on (the assembled code
will be listed in a readable text file .LST)
.NOLIST Switches the output to the .LST-file off, suppresses listing
6. Assembler Directives: Header
Nguyễn Trung Hiếu 6
.DEF
Defines a synonym for a register
syntax: .DEF MyReg = R16
.SET
Defines a symbol and sets its value (later changes of this
value remain possible)
syntax: .SET test = 1234567
.EQU
Fixes the value of a symbol (later redefinition is not possible)
syntax: .EQU test = 1234567
8. Assembler Directives: Code
Nguyễn Trung Hiếu 8
.CSEG
Start of the code segment (all that follows is assembled to
the code segment and will go to the program space)
.DB
Inserts one or more constant bytes in the code segment
The number of inserted bytes must be even, otherwise an
additional zero byte will be inserted by the assembler
syntax: .DB 1,’a’,”bc”
.DW
Insert binary words in the code segment, not used string
syntax: .DW 5,’b’
.LISTMAC
Macros will be listed in the .LST-file.
(Default is that macros are not listed)
.MACRO
Beginning of a macro (no code will be produced, call of the
macro later produces code)
syntax: .MACRO macroname parameters
.ENDMACRO End of the macro
9. Assembler Directives: Code
Nguyễn Trung Hiếu 9
;Define Macro LOADIO
.MACRO LOADIO
LDI R20,@1
OUT @0,R20
.ENDMACRO
;Call Macro LOADIO
LOADIO PORTA, $20 ;PORTA=$20
.EQU VAL_1 = $FF
LOADIO DDRC, VAL_1 ;DDRC=$FF
LOADIO SPL, $55 ;SPL=$55
@0 and @1 is input parameters
@ can up to 9
10. Assembler Directives: EEPROM
Nguyễn Trung Hiếu 10
.ESEG
Assemble to the EEPROM-segment (the code produced will go
to the EEPROM section, the code produces an .EEP-file)
.DB
Inserts one or more constant bytes in the EEPROM segment
(could be numbers from 0..255, an ASCII-character like 'c', a
string like “abcde” or a combination like 1,2,3,'abc’)
syntax: .DB 1,’a’,”abcde”
.DW
Inserts a binary word to the EEPROM segment (the lower byte
goes to the next address, the higher byte follows on the
incremented address)
syntax: .DW 15,’d’
11. Assembler Directives: SRAM
Nguyễn Trung Hiếu 11
.DSEG
Assemble to the data segment (here only BYTE directives and
labels are valid, during assembly only the labels are used)
.BYTE
Reserves one or more bytes space in the data segment (only
used to produce correct labels, does not insert any values!)
12. Assembler Directives: SRAM
Nguyễn Trung Hiếu 12
.DSEG ; declare DATA segment
.ORG 0x120 ; SRAM, begin address at $120
VAR1: .BYTE 1 ; use 1 byte in SRAM for VAR1 at $120
.CSEG ; declare CODE segment
.ORG 0x10 ; FLASH, begin address = PC = $10
MOV R0,R1 ;
….. ;
….. ;
.ESEG ; declare EEPROM segment
VAR2: .BYTE 5 ; use 5 byte in EEPROM for VAR2
13. Instruction Types
• Data transfer
• Arithmetic
• Logical
• Boolean variable
• Program branching
• MCU control
Nguyễn Trung Hiếu 13
Used for creating loops,
branching and call subroutine
14. Program Branching Types
Nguyễn Trung Hiếu 14
• Call, Return
- Call subroutine: save information about where it currently is
executing and then jumps to the subroutine
- Return: when the subroutine is finished, it returns to where the
call was made
• Conditional Jump (Branch)
- If the Branch test is successful, the program jumps to the location
specified (no save information)
- If the Branch test is unsuccessful, the next line of code is executed
• Unconditional Jump (Jump)
- Always jump to the location specified (no save information)
15. Program Branching Types
Nguyễn Trung Hiếu 15
Call, return
Conditional and
Unconditional Jump
Subroutine Loops, branching
16. Call and Return
Nguyễn Trung Hiếu 16
MAIN: ... (1)
(RCALL,ICALL)CALL SUBLABEL (2)
... (3)
...
SUBLABEL: ... (4)
...
RET (5)
Structure:
17. Subroutine
Nguyễn Trung Hiếu 17
▪ Divide and Conquer – Allow you to focus on one small “chunk”
of the problem at a time
▪ Code Organization – Gives the code organization and structure.
A small step into the world of object-oriented programming
▪ Hierarchical Design – Moves information about the program at
the appropriate level of detail
▪ Code Readability – Allows others to read and understand the
program in digestible “bites” instead of all at once
▪ Encapsulation – Insulates the rest of the program from changes
made within a procedure
▪ Team Development – Helps multiple programmers to work on
the program in parallel; a first step to configuration control
18. Cho một số BCD nén nằm ở địa chỉ $220 của bộ nhớ SRAM. Viết
chương trình đọc số BCD đó và xuất giá trị ra 2 LED 7 đoạn kết nối
với PORTA (nibble cao) và PORTC (nibble thấp) của vi xử lý.
Nguyễn Trung Hiếu 18
Your Turn!
19. LDI R16,ENTRY_NUMBER
(LDI R17,$0)
LDI ZH,HIGH(TABLE<<1)
LDI ZL,LOW(TABLE<<1)
ADD ZL,R16
(ADC ZH,R17)
LPM R17,Z
TABLE: .DB data1, data2, data3, …
Nguyễn Trung Hiếu 19
(Remember) Look-up Table DATA: 8 bits (byte)
Program Memory
Address High Byte Low Byte
data2 data1
data4 data3
… …
… …
TABLE’S ADDRESS
If ENTRY_NUMBER = 0,
Z POINT TO
21. .ORG 0
LDI R16,$FF
OUT DDRA,R16
OUT DDRC,R16
LDS R16,$220
ANDI R16,$0F
CALL LOOKUP
OUT PORTC,R17
LDS R16,$220
ANDI R16,$F0
SWAP R16
CALL LOOKUP
OUT PORTA,R17
LOOP: JMP LOOP
21
Solutions
PORTA,
PORTC
output
LOOKUP:
LDI ZL,LOW(TABLE<<1)
LDI ZH,HIGH(TABLE<<1)
ADD ZL,R16
LPM R17,Z
RET
TABLE: .DB $40,$79,$24,$30,$19,$12,$02,$78,$00,$10
Gọi CTC lần 1
Gọi CTC lần 2
Nguyễn Trung Hiếu
22. 22
Analyze
LOOKUP:
LDI ZL,LOW(TABLE<<1)
LDI ZH,HIGH(TABLE<<1)
ADD ZL,R16
LPM R17,Z
RET
▪ Subroutine named LOOKUP
▪ The input parameter is stored in R16
▪ The return parameter is stored in R17
▪ The subroutine can change value in R16 – to keep it safe
LOOKUP:
PUSH R16
….
POP R16
RET Nguyễn Trung Hiếu
23. Unconditional Jump
Nguyễn Trung Hiếu 23
JMP: (Direct Program Addressing)
IJMP: (Indirect Program Addressing)
RJMP: (Relative Program Addressing)
24. Conditional Jumps
Nguyễn Trung Hiếu 24
Instruction Abbreviation of Comment
BREQ label Branch if Equal Jump to location label, if Z = 1
BRNE label Branch if Not Equal Jump to location label, if Z = 0
BRCS label
BRLO label
Branch if Carry Set
Branch if Lower
Jump to location label, if C = 1
BRCC label
BRSH label
Branch if Carry Cleared
Branch if Same or Higher
Jump to location label, if C = 0
BRMI label Branch if Minus Jump to location label, if N = 1
BRPL label Branch if Plus Jump to location label, if N = 0
BRGE label Branch if Greater or Equal Jump to location label, if S = 0
BRLT label Branch if Less Than Jump to location label, if S = 1
BRHS label Branch if Half Carry Set Jump to location label, if H = 1
BRHC label Branch if Half Carry Cleared Jump to location label, if H = 0
BRTS label Branch if T flag Set Jump to location label, if T = 1
BRTC label Branch if T flag Cleared Jump to location label, if T = 0
BRIS label Branch if I flag set Jump to location label, if I = 1
BRIC label Branch if I flag cleared Jump to location label, if I = 0
H S V N C
Z
T
I
SREG
25. Conditional Jumps
Nguyễn Trung Hiếu 25
Instruction Abbreviation of Comment
SBRS Rd,b Skip if Bit in Register is Set Skip next instruction if Rd(b) = 1
SBRC Rd,b Skip if Bit in Register is Cleared Skip next instruction if Rd(b) = 0
SBIS IO_Addr,b Skip if Bit in I/O Register is Set Skip next instruction if IO_Addr(b) = 1
SBIC IO_Addr,b Skip if Bit in I/O Register is Cleared Skip next instruction if IO_Addr(b) = 0
Branch with conditions of bits
26. Creating a Loop (1)
Viết chương trình thực hiện ghi giá trị $20 vào bộ nhớ SRAM từ ô
nhớ $200 đến $210
.ORG $0
LDI R16,$20
STS $200,R16
STS $201,R16
STS $202,R16
STS $203,R16
…
Nguyễn Trung Hiếu 26
17 lần
27. Viết chương trình thực hiện ghi giá trị $20
vào bộ nhớ SRAM từ ô nhớ $200 đến
$210
.ORG $0
LDI R16,$20
LDI R17,17
LDI ZH,HIGH($200)
LDI ZL,LOW($200)
Again: ST Z+,R16
DEC R17
BRNE Again
Nguyễn Trung Hiếu 27
Creating a Loop (2)
Ptr $200
(Ptr) R16
Ptr Ptr+1
Loop=0?
N
Y
Loop 17
LoopLoop-1
R16 $20
Z = 0
Z = 1
SIMILAR TO FOR LOOPS
28. Viết chương trình thực hiện ghi giá trị $20
vào bộ nhớ SRAM từ ô nhớ $200 đến
$210
.ORG $0
LDI R16,$20
LDI ZH,HIGH($200)
LDI ZL,LOW($200)
Again: ST Z+,R16
CPI ZL,$11
BRCS Again
Nguyễn Trung Hiếu 28
Creating a Loop (3)
Ptr $200
(Ptr) R16
Ptr Ptr+1
Ptr<=$210?
Y
N
R16 $20
C = 1
C = 0
ZL - $11
SIMILAR TO DO … WHILE …
29. Viết chương trình thực hiện ghi giá trị $20
vào bộ nhớ SRAM từ ô nhớ $200 đến
$210
.ORG $0
LDI R16,$20
LDI ZH,HIGH($200)
LDI ZL,LOW($200)
Again: ST Z+,R16
CPI ZL,$11
BRNE Again
Nguyễn Trung Hiếu 29
Creating a Loop (4)
Ptr $200
(Ptr) R16
Ptr Ptr+1
Ptr=$211?
N
Y
R16 $20
Z = 0
Z = 1
ZL - $11
SIMILAR TO DO … WHILE …
30. Your Turn!
Cho một chuỗi số (có giá trị từ 0 đến 9) được lưu trong ô nhớ
$200 đến $210 ở bộ nhớ SRAM (mỗi ô lưu 1 số).
Viết chương trình tiến hành đọc giá trị từ các ô nhớ ra, sau đó
cộng giá trị đọc được thêm $30 và lưu vào vị trí cũ
Nguyễn Trung Hiếu 30
31. Solutions (1)
Nguyễn Trung Hiếu 31
(Ptr) R16
.ORG $0
LDI R17,$30
LDI ZH,HIGH($200)
LDI ZL,LOW($200)
LDI R18,17
Again: LD R16,Z
ADD R16,R17
ST Z+,R16
DEC R18
BRNE Again
Ptr $200
R16 (Ptr)
Ptr Ptr+1
Loop=0?
N
Y
R16 R16+R17
R17 $30
Z = 0
Z = 1
Loop 17
Loop Loop - 1
32. Solutions (2)
Nguyễn Trung Hiếu 32
(Ptr) R16
.ORG $0
LDI R17,$30
LDI ZH,HIGH($200)
LDI ZL,LOW($200)
Again: LD R16,Z
ADD R16,R17
ST Z+,R16
CPI ZL,$11
BRNE Again
Ptr $200
R16 (Ptr)
Ptr Ptr+1
Ptr=$211?
N
Y
R16 R16+R17
R17 $30
Z = 0
Z = 1
33. For loop – Application
Nguyễn Trung Hiếu 33
To create a for loop control:
can use BRNE, BRCS (with CPI), …
Example: a 10-time loop
LDI R16,10
LOOP: (begin loop)
…
…
(end loop)
DEC R16
BRNE LOOP
(continue)
34. Nguyễn Trung Hiếu 34
Use BRNE to create a 1000-time loop?
Ex: 1000 = 250.4 = 200.5 = 100.10 = 10.10.10
LDI R17,4
LOOP1: LDI R16,250
LOOP: (begin loop)
…
…
(end loop)
DEC R16
BRNE LOOP
DEC R17
BRNE LOOP1
(continue)
For loop – Application
35. Viết chương trình thực hiện xóa thanh ghi R1, sau đó thực
hiện cộng cho R1 số 10 năm lần liên tiếp
Solution:
CLR R1
LDI R16,10
LDI R17,5
AGAIN: ADD R1,R16
DEC R17
BRNE AGAIN
Nguyễn Trung Hiếu 35
For loop – Application
36. CLR R1 ; 1 MC
LDI R16,10 ; 1 MC
LDI R17,5 ; 1 MC
AGAIN: ADD R1,R16 ; 1 MC
DEC R17 ; 1 MC
BRNE AGAIN ; True – 2 MCs
; False – 1 MC
Nguyễn Trung Hiếu 36
Timing Program
37. CLR R1 ; 1 MC
LDI R16,10 ; 1 MC
LDI R17,5 ; 1 MC
AGAIN: ADD R1,R16 ; 1 MC
DEC R17 ; 1 MC
BRNE AGAIN ; True – 2 MCs
; False – 1 MC
Nguyễn Trung Hiếu 37
Timing Program
1 time
5 times
4 times T
1 time F
Total time = (1 + 1 + 1).1 + (1 + 1).5 + 2.4 + 1 = 22 MCs
Or = (1 + 1 + 1).1 + (1 + 1 + 2).5 - 1 = 22 MCs
If fMC = 1 MHz → TMC = 1 µs → Total time = 22 µs
45. If fMC = 1MHz, 1 MC = 1 μs
→ tH = 100,309 MC = 100,309 μs
→tL = 100,311 MC = 100,311 μs
→ T = tH + tL = 200,620 μs
→ f = 1/T = 4.98 Hz
Nguyễn Trung Hiếu 45
Blinky Program
tH tL
T
PC0 1
Delay tH
PC0 0
Delay tL
46. → tH = tL ≈ tDELAY ≈ 100 x 250 x 4 MC = 100,000 MC = 100,000 μs
→ T ≈ 200,000 μs
→ f ≈ 5 Hz
Nguyễn Trung Hiếu 46
Blinky Program - Estimating
PC0 1
Delay tH
PC0 0
Delay tL
DELAY:
LDI R21,100
L1: LDI R20,250 ; 1 MC
L2: NOP ; 1 MC
DEC R20 ; 1 MC
BRNE L2 ; 2/1 MC
DEC R21 ; 1 MC
BRNE L1 ; 2/1 MC
RET
4 MCs
47. Viết chương trình tạo 1 xung vuông có tần số 10 kHz ở
chân PC0. Giả sử rằng tần số fMC = 4MHz
Nguyễn Trung Hiếu 47
10-kHz square wave
48. Nguyễn Trung Hiếu 48
10-kHz square wave
tH tL
T
PC0 1
Delay tH
PC0 0
Delay tL
tH = tL
Viết chương trình tạo 1 xung vuông có tần số 10 kHz ở
chân PC0. Giả sử rằng tần số fMC = 4MHz
49. Nguyễn Trung Hiếu 49
10-kHz square wave
Viết chương trình tạo 1 xung vuông có tần số 10 kHz ở
chân PC0. Giả sử rằng tần số fMC = 4MHz
fMC = 4MHz → 1 MC = 0,25 µs
f = 10 kHz → TH = TL = 100 µs = 4.100.0,25 µs = 4.100 MCs
DELAY:
LDI R20,100
L1: NOP ; 1 MC
DEC R20 ; 1 MC
BRNE L1 ; 2/1 MC
RET
50. Nguyễn Trung Hiếu 50
10-kHz square wave, duty cycle 30%
tH tL
T
PC0 1
Delay tH
PC0 0
Delay tL
Viết chương trình tạo 1 xung vuông có tần số 10 kHz với
chu kỳ nhiệm vụ 30% ở chân PC0.
Giả sử rằng tần số fMC = 4MHz
Chu kỳ nhiệm vụ = D = TH/T
51. Nguyễn Trung Hiếu 51
10-kHz square wave, duty cycle 30%
PC0 1
Delay tH
PC0 0
Delay tL
Viết chương trình tạo 1 xung vuông có tần số 10 kHz với
chu kỳ nhiệm vụ 30% ở chân PC0.
Giả sử rằng tần số fMC = 4MHz
fMC = 4MHz → 1 MC = 0,25 µs
f = 10 kHz → T = 200 µs
TH = 0,3T = 60 µs = 4.60.0,25 µs = 4.60 MCs
TL = 0,7T = 140 µs
= 4.140.0,25 µs = 4.140 MCs
52. Nguyễn Trung Hiếu 52
400-kHz square wave
Viết chương trình tạo 1 xung vuông có tần số 400 kHz ở
chân PC0. Giả sử rằng tần số fMC = 4MHz
fMC = 4MHz → 1 MC = 0,25 µs
f = 400 kHz → TH = TL = 2.5 µs = 10 MCs
53. Nguyễn Trung Hiếu 53
400-kHz square wave, duty cycle 40%
Viết chương trình tạo 1 xung vuông có tần số 400 kHz và
chu kỳ nhiệm vụ 40% ở chân PC0.
Giả sử rằng tần số fMC = 4MHz
54. CPI R16,$05
BRNE Skip
(Statement 1)
Skip: (Continue)
Nguyễn Trung Hiếu 54
If … else … – Equal/Not Equal (1)
R16 = $05?
N
Y
Statement 1
Z = 0
Z = 1
CP R16,R17
BRNE Skip
(Statement 1)
Skip: (Continue)
R16 = R17?
N
Y
Statement 1
Z = 0
Z = 1
55. CPI R16,$05
BRNE Not_Eq
(Statement 1)
RJMP Next
Not_Eq: (Statement 2)
Next: (Continue)
Nguyễn Trung Hiếu 55
If … else … – Equal/Not Equal (2)
R16 = $05?
N
Y
Statement 1
Z = 0
Z = 1
Statement 2
56. CPI R16,$05
BRCC LessThan
(Statement 1)
LessThan: (Continue)
Nguyễn Trung Hiếu 56
If … else … –
Greater Than or Equal/Less Than (1)
R16 ≥ $05?
N
Y
Statement 1
C = 1
C = 0
57. CPI R16,$05
BRCS GrEqThan
(Statement 1)
GrEqThan: (Continue)
Nguyễn Trung Hiếu 57
If … else … –
Greater Than or Equal/Less Than (2)
R16 < $05?
N
Y
Statement 1
C = 0
C = 1
58. Viết chương trình kiểm tra nội dung trong thanh ghi R16.
Nếu giá trị 5 ≤ R16 ≤ 10, xuất giá trị bù 1 của R16 ra PORTA.
Ngược lại, xuất giá trị bù 2 của R16 ra PORTA.
58
Nguyễn Trung Hiếu
Ví dụ
.ORG $0
LDI R16,$FF
OUT DDRA,R16
CPI R16,5
BRCC LessThan
CPI R16,11
BRCS GrEqThan
LessThan:
NEQ R16
RJMP NEXT
GrEgThan:
COMP R16
NEXT: OUT PORTA,R16
NOP
59. CPI R16,$05
BRCC LessThan
(Statement 1)
RJMP Next
LessThan: (Statement 2)
Next: (Continue)
Nguyễn Trung Hiếu 59
If … else … –
Greater Than or Equal/Less Than (3)
R16 ≥ $05?
N
Y
Statement 1
C = 1
C = 0
Statement 2
60. CPI R16,$05
BRCS GrEqThan
(Statement 1)
RJMP Next
GrEqThan: (Statement 2)
Next: (Continue)
Nguyễn Trung Hiếu 60
If … else … –
Greater Than or Equal/Less Than (4)
R16 < $05?
N
Y
Statement 1
C = 0
C = 1
Statement 2
61. SBRS R16,0
(Statement 1)
(Continue)
Nguyễn Trung Hiếu 61
If … else … – Bit in Register is set/cleared (1)
R16(0)=1?
Y
N
Statement 1
SBRC R16,0
(Statement 1)
(Continue)
R16(0)=0?
Y
N
Statement 1
Note: Statement 1
- 1 instruction
- If > 1 instruction, call subroutine
62. SBRS R16,0
RJMP BitSet
(Statement 2)
RJMP Next
BitSet: (Statement 1)
Next: (Continue)
Nguyễn Trung Hiếu 62
If … else … – Bit in Register is set/cleared (2)
R16(0)=1?
Y
N
Statement 1
Statement 2
63. Cho 20 bytes nằm trong bộ nhớ SRAM bắt đầu tại địa chỉ $250.
Viết chương trình xuất các byte chẵn ra PORTA
63
Nguyễn Trung Hiếu
Bit Testing (1)
64. 64
Nguyễn Trung Hiếu
Your Turn!
Cho 20 bytes nằm trong bộ nhớ SRAM bắt đầu tại địa chỉ $300.
Viết chương trình xuất các byte chẵn ra PORTA và các byte lẽ ra
PORTB
65. Cho 100 bytes số có dấu nằm trong bộ nhớ SRAM bắt đầu tại địa chỉ
$400. Viết chương trình xuất các số âm ra PORTA và các số dương ra
PORTB
Nguyễn Trung Hiếu
Bit Testing (2)
65