document_title: Assembly language

question_text: software which converts a program into assembly language is called

text: Assembly language

text: Assembler language syntax[edit]

text: Assembly language uses a mnemonic to represent each low-level machine instruction or opcode, typically also each architectural register, flag, etc. Many operations require one or more operands in order to form a complete instruction. Most assemblers permit named constants, registers, and labels for program and memory locations, and can calculate expressions for operands. Thus, the programmers are freed from tedious repetitive calculations and assembler programs are much more readable than machine code. Depending on the architecture, these elements may also be combined for specific instructions or addressing modes using offsets or other data as well as fixed addresses. Many assemblers offer additional mechanisms to facilitate program development, to control the assembly process, and to aid debugging.

text: Terminology[edit]

text:
A macro assembler includes a macroinstruction facility so that (parameterized) assembly language text can be represented by a name, and that name can be used to insert the expanded text into other code.
A cross assembler (see also cross compiler) is an assembler that is run on a computer or operating system (the host system) of a different type from the system on which the resulting code is to run (the target system). Cross-assembling facilitates the development of programs for systems that do not have the resources to support software development, such as an embedded system. In such a case, the resulting object code must be transferred to the target system, either via read-only memory (ROM, EPROM, etc.) or a data link using an exact bit-by-bit copy of the object code or a text-based representation of that code, such as Motorola S-record or Intel HEX.
A high-level assembler is a program that provides language abstractions more often associated with high-level languages, such as advanced control structures (IF/THEN/ELSE, DO CASE, etc.) and high-level abstract data types, including structures/records, unions, classes, and sets.
A microassembler is a program that helps prepare a microprogram, called firmware, to control the low level operation of a computer.
A meta-assembler is a term used in some circles for "a program that accepts the syntactic and semantic description of an assembly language, and generates an assembler for that language."[8]
Assembly time is the computational step where an assembler is run.

text: Key concepts[edit]

text: Assembler[edit]

text: An assembler program creates object code by translating combinations of mnemonics and syntax for operations and addressing modes into their numerical equivalents. This representation typically includes an operation code ("opcode") as well as other control bits and data. The assembler also calculates constant expressions and resolves symbolic names for memory locations and other entities.[9] The use of symbolic references is a key feature of assemblers, saving tedious calculations and manual address updates after program modifications. Most assemblers also include macro facilities for performing textual substitution – e.g., to generate common short sequences of instructions as inline, instead of called subroutines.

text: Some assemblers may also be able to perform some simple types of instruction set-specific optimizations. One concrete example of this may be the ubiquitous x86 assemblers from various vendors. Most of them are able to perform jump-instruction replacements (long jumps replaced by short or relative jumps) in any number of passes, on request. Others may even do simple rearrangement or insertion of instructions, such as some assemblers for RISC architectures that can help optimize a sensible instruction scheduling to exploit the CPU pipeline as efficiently as possible.[citation needed]

text: Like early programming languages such as Fortran, Algol, Cobol and Lisp, assemblers have been available since the 1950s and the first generations of text based computer interfaces. However, assemblers came first as they are far simpler to write than compilers for high-level languages. This is because each mnemonic along with the addressing modes and operands of an instruction translates rather directly into the numeric representations of that particular instruction, without much context or analysis. There have also been several classes of translators and semi automatic code generators with properties similar to both assembly and high level languages, with speedcode as perhaps one of the better known examples.

text: There may be several assemblers with different syntax for a particular CPU or instruction set architecture. For instance, an instruction to add memory data to a register in a x86-family processor might be add eax,[ebx], in original Intel syntax, whereas this would be written addl (%ebx),%eax in the AT&T syntax used by the GNU Assembler. Despite different appearances, different syntactic forms generally generate the same numeric machine code, see further below. A single assembler may also have different modes in order to support variations in syntactic forms as well as their exact semantic interpretations (such as FASM-syntax, TASM-syntax, ideal mode etc., in the special case of x86 assembly programming).

text: Number of passes[edit]

text: There are two types of assemblers based on how many passes through the source are needed  (how many times the assembler reads the source) to produce the object file.

text:
One-pass assemblers go through the source code once. Any symbol used before it is defined will require "errata" at the end of the object code (or, at least, no earlier than the point where the symbol is defined) telling the linker or the loader to "go back" and overwrite a placeholder which had been left where the as yet undefined symbol was used.
Multi-pass assemblers create a table with all symbols and their values in the first passes, then use the table in later passes to generate code.

text:
In both cases, the assembler must be able to determine the size of each instruction on the initial passes in order to calculate the addresses of subsequent symbols. This means that if the size of an operation referring to an operand defined later depends on the type or distance of the operand, the assembler will make a pessimistic estimate when first encountering the operation, and if necessary pad it with one or more
"no-operation" instructions in a later pass or the errata. In an assembler with peephole optimization, addresses may be recalculated between passes to allow replacing pessimistic code with code tailored to the exact distance from the target.

text: The original reason for the use of one-pass assemblers was speed of assembly – often a second pass would require rewinding and rereading the program source on tape or rereading a deck of cards or punched paper tape. Later computers with much larger memories (especially disc storage), had the space to perform all necessary processing without such re-reading. The advantage of the multi-pass assembler is that the absence of errata makes the linking process (or the program load if the assembler directly produces executable code) faster.[10]

text: Example: in the following code snippet a one-pass assembler would be able to determine the address of the backward reference BKWD when assembling statement S2, but would not be able to determine the address of the forward reference FWD when assembling the branch statement S1; indeed FWD may be undefined. A two-pass assembler would determine both addresses in pass 1, so they would be known when generating code in pass 2,

text: High-level assemblers[edit]

text: More sophisticated high-level assemblers provide language abstractions such as:

text:
High-level procedure/function declarations and invocations
Advanced control structures (IF/THEN/ELSE, SWITCH)
High-level abstract data types, including structures/records, unions, classes, and sets
Sophisticated macro processing (although available on ordinary assemblers since the late 1950s for IBM 700 series and since the 1960s for IBM/360, amongst other machines)
Object-oriented programming features such as classes, objects, abstraction, polymorphism, and inheritance[11]

text: See Language design below for more details.

text: Assembly language[edit]

text: A program written in assembly language consists of a series of mnemonic processor instructions and meta-statements (known variously as directives, pseudo-instructions and pseudo-ops), comments and data. Assembly language instructions usually consist of an opcode mnemonic followed by a list of data, arguments or parameters.[12] These are translated by an assembler into machine language instructions that can be loaded into memory and executed.

text: For example, the instruction below tells an x86/IA-32 processor to move an immediate 8-bit value into a register. The binary code for this instruction is 10110 followed by a 3-bit identifier for which register to use. The identifier for the AL register is 000, so the following machine code loads the AL register with the data 01100001.[13]

text: This binary computer code can be made more human-readable by expressing it in hexadecimal as follows.

text: Here, B0 means 'Move a copy of the following value into AL', and 61 is a hexadecimal representation of the value 01100001, which is 97 in decimal. Assembly language for the 8086 family provides the mnemonic MOV (an abbreviation of move) for instructions such as this, so the machine code above can be written as follows in assembly language, complete with an explanatory comment if required, after the semicolon. This is much easier to read and to remember.

text: In some assembly languages the same mnemonic such as MOV may be used for a family of related instructions for loading, copying and moving data, whether these are immediate values, values in registers, or memory locations pointed to by values in registers.  Other assemblers may use separate opcode mnemonics such as L for "move memory to register", ST for "move register to memory", LR for "move register to register", MVI for "move immediate operand to memory", etc.

text: The x86 opcode 10110000 (B0) copies an 8-bit value into the AL register, while 10110001 (B1) moves it into CL and 10110010 (B2) does so into DL. Assembly language examples for these follow.[13]

text: The syntax of MOV can also be more complex as the following examples show.[14]

text: In each case, the MOV mnemonic is translated directly into an opcode in the ranges 88-8E, A0-A3, B0-B8, C6 or C7 by an assembler, and the programmer does not have to know or remember which.[13]

text: Transforming assembly language into machine code is the job of an assembler, and the reverse can at least partially be achieved by a disassembler. Unlike high-level languages, there is a one-to-one correspondence between many simple assembly statements and machine language instructions. However, in some cases, an assembler may provide pseudoinstructions (essentially macros) which expand into several machine language instructions to provide commonly needed functionality. For example, for a machine that lacks a "branch if greater or equal" instruction, an assembler may provide a pseudoinstruction that expands to the machine's "set if less than" and "branch if zero (on the result of the set instruction)". Most full-featured assemblers also provide a rich macro language (discussed below) which is used by vendors and programmers to generate more complex code and data sequences.

text: Each computer architecture has its own machine language.  Computers differ in the number and type of operations they support, in the different sizes and numbers of registers, and in the representations of data in storage. While most general-purpose computers are able to carry out essentially the same functionality, the ways they do so differ; the corresponding assembly languages reflect these differences.

text: Multiple sets of mnemonics or assembly-language syntax may exist for a single instruction set, typically instantiated in different assembler programs. In these cases, the most popular one is usually that supplied by the manufacturer and used in its documentation.

text: Language design[edit]

text: Basic elements[edit]

text: There is a large degree of diversity in the way the authors of assemblers categorize statements and in the nomenclature that they use. In particular, some describe anything other than a machine mnemonic or extended mnemonic as a pseudo-operation (pseudo-op). A typical assembly language consists of 3 types of instruction statements that are used to define program operations:

text:
Opcode mnemonics
Data definitions
Assembly directives

text: Opcode mnemonics and extended mnemonics[edit]

text: Instructions (statements) in assembly language are generally very simple, unlike those in high-level languages. Generally, a mnemonic is a symbolic name for a single executable machine language instruction (an opcode), and there is at least one opcode mnemonic defined for each machine language instruction. Each instruction typically consists of an operation or opcode plus zero or more operands. Most instructions refer to a single value, or a pair of values.  Operands can be immediate (value coded in the instruction itself), registers specified in the instruction or implied, or the addresses of data located elsewhere in storage. This is determined by the underlying processor architecture: the assembler merely reflects how this architecture works. Extended mnemonics are often used to specify a combination of an opcode with a specific operand, e.g., the System/360 assemblers use B as an extended mnemonic for BC with a mask of 15 and NOP ("NO OPeration" – do nothing for one step) for BC with a mask of 0.

text: Extended mnemonics are often used to support specialized uses of instructions, often for purposes not obvious from the instruction name. For example, many CPU's do not have an explicit NOP instruction, but do have instructions that can be used for the purpose. In 8086 CPUs the instruction xchg ax,ax is used for nop, with nop being a pseudo-opcode to encode the instruction xchg ax,ax. Some disassemblers recognize this and will decode the xchg ax,ax instruction as nop. Similarly, IBM assemblers for System/360 and System/370 use the extended mnemonics NOP and NOPR for BC and BCR with zero masks.  For the SPARC architecture, these are known as synthetic instructions.[15]

text: Some assemblers also support simple built-in macro-instructions that generate two or more machine instructions. For instance, with some Z80 assemblers the instruction ld hl,bc is recognized to generate ld l,c followed by ld h,b.[16] These are sometimes known as pseudo-opcodes.

text: Mnemonics are arbitrary symbols; in 1985 the IEEE published Standard 694 for a uniform set of mnemonics to be used by all assemblers. The standard has since been withdrawn.

text: Data directives[edit]

text: There are instructions used to define data elements to hold data and variables.  They define the type of data, the length and the alignment of data. These instructions can also define whether the data is available to outside programs (programs assembled separately) or only to the program in which the data section is defined. Some assemblers classify these as pseudo-ops.

text: Assembly directives[edit]

text: Assembly directives, also called pseudo-opcodes, pseudo-operations or pseudo-ops, are commands given to an assembler "directing it to perform operations other than assembling instructions.".[9] Directives affect how the assembler operates and "may affect the object code, the symbol table, the listing file, and the values of internal assembler parameters."  Sometimes the term pseudo-opcode is reserved for directives that generate object code, such as those that generate data.[17]

text: The names of pseudo-ops often start with a dot to distinguish them from machine instructions.  Pseudo-ops can make the assembly of the program dependent on parameters input by a programmer, so that one program can be assembled different ways, perhaps for different applications. Or, a pseudo-op can be used to manipulate presentation of a program to make it easier to read and maintain. Another common use of pseudo-ops is to reserve storage areas for run-time data and optionally initialize their contents to known values.

text: Symbolic assemblers let programmers associate arbitrary names (labels or symbols) with memory locations and various constants. Usually, every constant and variable is given a name so instructions can reference those locations by name, thus promoting self-documenting code. In executable code, the name of each subroutine is associated with its entry point, so any calls to a subroutine can use its name. Inside subroutines, GOTO destinations are given labels. Some assemblers support local symbols which are lexically distinct from normal symbols (e.g., the use of "10$" as a GOTO destination).

text: Some assemblers, such as NASM, provide flexible symbol management, letting programmers manage different namespaces, automatically calculate offsets within data structures, and assign labels that refer to literal values or the result of simple computations performed by the assembler. Labels can also be used to initialize constants and variables with relocatable addresses.

text: Assembly languages, like most other computer languages, allow comments to be added to program source code that will be ignored during assembly. Judicious commenting is essential in assembly language programs, as the meaning and purpose of a sequence of binary machine instructions can be difficult to determine. The "raw" (uncommented) assembly language generated by compilers or disassemblers is quite difficult to read when changes must be made.

text: Macros[edit]

text:
Many assemblers support predefined macros, and others support programmer-defined (and repeatedly re-definable) macros involving sequences of text lines in which variables and constants are embedded. The macro definition is most commonly[a] a mixture of assembler statements, e.g., directives, symbolic machine instructions, and templates for assembler statements. This sequence of text lines may include opcodes or directives. Once a macro has been defined its name may be used in place of a mnemonic. When the assembler processes such a statement, it replaces the statement with the text lines associated with that macro, then processes them as if they existed in the source code file (including, in some assemblers, expansion of any macros existing in the replacement text). Macros in this sense date to IBM autocoders of the 1950s.[18]
[19]

text: In assembly language, the term "macro" represents a more comprehensive concept than it does in some other contexts, such as in the C programming language, where its #define directive typically is used to create short single line macros. Assembler macro instructions, like macros in PL/I and some other languages, can be lengthy "programs" by themselves, executed by interpretation by the assembler during assembly.

text: Since macros can have 'short' names but expand to several or indeed many lines of code, they can be used to make assembly language programs appear to be far shorter, requiring fewer lines of source code, as with higher level languages. They can also be used to add higher levels of structure to assembly programs, optionally introduce embedded debugging code via parameters and other similar features.

text: Macro assemblers often allow macros to take parameters. Some assemblers include quite sophisticated macro languages, incorporating such high-level language elements as optional parameters, symbolic variables, conditionals, string manipulation, and arithmetic operations, all usable during the execution of a given macro, and allowing macros to save context or exchange information. Thus a macro might generate numerous assembly language instructions or data definitions, based on the macro arguments. This could be used to generate record-style data structures or "unrolled" loops, for example, or could generate entire algorithms based on complex parameters. For instance, a "sort" macro could accept the specification of a complex sort key and generate code crafted for that specific key, not needing the run-time tests that would be required  for a general procedure interpreting the specification. An organization using assembly language that has been heavily extended using such a macro suite can be considered to be working in a higher-level language, since such programmers are not working with a computer's lowest-level conceptual elements. Underlining this point, macros were used to implement an early virtual machine in SNOBOL4 (1967), which was written in the SNOBOL Implementation Language (SIL), an assembly language for a virtual machine. The target machine would translate this to its native code using a macro assembler.[20] This allowed a high degree of portability for the time.

text: Macros were used to customize large scale software systems for specific customers in the mainframe era and were also used by customer personnel to satisfy their employers' needs by making specific versions of manufacturer operating systems. This was done, for example, by systems programmers working with IBM's Conversational Monitor System / Virtual Machine (VM/CMS) and with IBM's "real time transaction processing" add-ons, Customer Information Control System CICS, and ACP/TPF, the airline/financial system that began in the 1970s and still runs many large computer reservation systems (CRS) and credit card systems today.

text: It is also possible to use solely the macro processing abilities of an assembler to generate code written in completely different languages, for example, to generate a version of a program in COBOL using a pure macro assembler program containing lines of COBOL code inside assembly time operators instructing the assembler to generate arbitrary code. IBM OS/360 uses macros to perform system generation. The user specifies options by coding a series of assembler macros.  Assembling these macros generates a job stream to build the system, including job control language and utility control statements.

text: This is because, as was realized in the 1960s, the concept of "macro processing" is independent of the concept of "assembly", the former being in modern terms more word processing, text processing, than generating object code. The concept of macro processing appeared, and appears, in the C programming language, which supports "preprocessor instructions" to set variables, and make conditional tests on their values. Note that unlike certain previous macro processors inside assemblers, the C preprocessor is not Turing-complete because it lacks the ability to either loop or "go to", the latter allowing programs to loop.

text: Despite the power of macro processing, it fell into disuse in many high level languages (major exceptions being C, C++ and PL/I) while remaining a perennial for assemblers.

text: Macro parameter substitution is strictly by name: at macro processing time, the value of a parameter is textually substituted for its name. The most famous class of bugs resulting was the use of a parameter that itself was an expression and not a simple name when the macro writer expected a name. In the macro:

text: the intention was that the caller would provide the name of a variable, and the "global" variable or constant b would be used to multiply "a". If foo is called with the parameter a-c, the macro expansion of load a-c*b occurs.  To avoid any possible ambiguity, users of macro processors can parenthesize formal parameters inside macro definitions, or callers can parenthesize the input parameters.[21]

text: Support for structured programming[edit]

text: Some assemblers have incorporated structured programming elements to encode execution flow. The earliest example of this approach was in the Concept-14 macro set, originally proposed by Dr. Harlan Mills (March 1970), and implemented by Marvin Kessler at IBM's Federal Systems Division, which extended the S/360 macro assembler with IF/ELSE/ENDIF and similar control flow blocks.[22] This was a way to reduce or eliminate the use of GOTO operations in assembly code, one of the main factors causing spaghetti code in assembly language. This approach was widely accepted in the early '80s (the latter days of large-scale assembly language use).

text: A curious design was A-natural, a "stream-oriented" assembler for 8080/Z80 processors[citation needed] from Whitesmiths Ltd. (developers of the Unix-like Idris operating system, and what was reported to be the first commercial C compiler). The language was classified as an assembler, because it worked with raw machine elements such as opcodes, registers, and memory references; but it incorporated an expression syntax to indicate execution order. Parentheses and other special symbols, along with block-oriented structured programming constructs, controlled the sequence of the generated instructions. A-natural was built as the object language of a C compiler, rather than for hand-coding, but its logical syntax won some fans.

text: There has been little apparent demand for more sophisticated assemblers since the decline of large-scale assembly language development.[23] In spite of that, they are still being developed and applied in cases where resource constraints or peculiarities in the target system's architecture prevent the effective use of higher-level languages.[24]

text: Assemblers with a strong macro engine allow structured programming via macros, such as the switch macro provided with the Masm32 package (note this code is a complete program):

text: Use of assembly language[edit]

text: Historical perspective[edit]

text: Assembly languages date to the introduction of the stored-program computer. The first assembly language was developed in 1947 by Kathleen Booth for the ARC2 at Birkbeck, University of London following work with John von Neumann and Herman Goldstine at the Institute for Advanced Study.[25][26] The Electronic Delay Storage Automatic Calculator (EDSAC) had an assembler (named "initial orders") integrated into its bootstrap program that used one-letter mnemonics in late 1948 developed by David Wheeler and credited by the IEEE Computer Society as the creator of the first "assembler."[27][28] [29] Reports on the EDSAC introduced the term "assembly" for the process of combining fields into an instruction word.[30] SOAP (Symbolic Optimal Assembly Program) was an assembly language for the IBM 650 computer written by Stan Poley in 1955.[31]

text: Assembly languages eliminate much of the error-prone, tedious, and time-consuming first-generation programming needed with the earliest computers, freeing programmers from tedium such as remembering numeric codes and calculating addresses. They were once widely used for all sorts of programming. However, by the 1980s (1990s on microcomputers), their use had largely been supplanted by higher-level languages, in the search for improved programming productivity. Today assembly language is still used for direct hardware manipulation, access to specialized processor instructions, or to address critical performance issues. Typical uses are device drivers, low-level embedded systems, and real-time systems.

text: Historically, numerous programs have been written entirely in assembly language. The Burroughs MCP (1961) was the first computer for which an operating system was not developed entirely in assembly language; it was written in Executive Systems Problem Oriented Language (ESPOL), an Algol dialect. Many commercial applications were written in assembly language as well, including a large amount of the IBM mainframe software written by large corporations. COBOL, FORTRAN and some PL/I eventually displaced much of this work, although a number of large organizations retained assembly-language application infrastructures well into the 1990s.

text: Most early microcomputers relied on hand-coded assembly language, including most operating systems and large applications. This was because these systems had severe resource constraints, imposed idiosyncratic memory and display architectures, and provided limited, buggy system services. Perhaps more important was the lack of first-class high-level language compilers suitable for microcomputer use. A psychological factor may have also played a role: the first generation of microcomputer programmers retained a hobbyist, "wires and pliers" attitude.

text: In a more commercial context, the biggest reasons for using assembly language were minimal bloat (size), minimal overhead, greater speed, and reliability.

text: Typical examples of large assembly language programs from this time are IBM PC DOS operating systems, the Turbo Pascal compiler and early applications such as the spreadsheet program Lotus 1-2-3. According to some[who?] industry insiders, the assembly language was the best computer language to use to get the best performance out of the Sega Saturn, a console that was notoriously challenging to develop and program games for.[32] The 1993 arcade game NBA Jam is another example.

text: Assembly language has long been the primary development language for many popular home computers of the 1980s and 1990s (such as the MSX,  Sinclair ZX Spectrum, Commodore 64, Commodore Amiga, and Atari ST). This was in large part because interpreted BASIC dialects on these systems offered insufficient execution speed, as well as insufficient facilities to take full advantage of the available hardware on these systems. Some systems even have an integrated development environment (IDE) with highly advanced debugging and macro facilities. Some compilers available for the Radio Shack TRS-80 and its successors had the capability to combine inline assembly source with high-level program statements. Upon compilation a built-in assembler produced inline machine code.

text: Current usage[edit]

text: There have always been debates over the usefulness and performance of assembly language relative to high-level languages. Assembly language has specific niche uses where it is important; see below. As of  July 2017[update], the TIOBE index of programming language popularity ranks assembly language at 11, ahead of Visual Basic, for example.[33] Assembler can be used to optimize for speed or optimize for size. In the case of speed optimization, modern optimizing compilers are claimed[34]  to render high-level languages into code that can run as fast as hand-written assembly, despite the counter-examples that can be found.[35][36][37] The complexity of modern processors and memory sub-systems makes effective optimization increasingly difficult for compilers, as well as assembly programmers.[38][39] Moreover, increasing processor performance has meant that most CPUs sit idle most of the time,[40] with delays caused by predictable bottlenecks such as cache misses, I/O operations and paging. This has made raw code execution speed a non-issue for many programmers.

text: There are some situations in which developers might choose to use assembly language:

text:
A stand-alone executable of compact size is required that must execute without recourse to the run-time components or libraries associated with a high-level language; this is perhaps the most common situation. For example, firmware for telephones, automobile fuel and ignition systems, air-conditioning control systems, security systems, and sensors.
Code that must interact directly with the hardware, for example in device drivers and interrupt handlers.
In an embedded processor or DSP, high-repetition interrupts require the shortest number of cycles per interrupt, such as an interrupt that occurs 1000 or 10000 times a second.
Programs that need to use processor-specific instructions not implemented in a compiler. A common example is the bitwise rotation instruction at the core of many encryption algorithms, as well as querying the parity of a byte or the 4-bit carry of an addition.
Programs that create vectorized functions for programs in higher-level languages such as C.  In the higher-level language this is sometimes aided by compiler intrinsic functions which map directly to SIMD mnemonics, but nevertheless result in a one-to-one assembly conversion specific for the given vector processor.
Programs requiring extreme optimization, for example an inner loop in a processor-intensive algorithm. Game programmers take advantage of the abilities of hardware features in systems, enabling games to run faster. Also large scientific simulations require highly optimized algorithms, e.g. linear algebra with BLAS[35][41] or discrete cosine transformation (e.g. SIMD assembly version from x264[42])
Situations where no high-level language exists, on a new or specialized processor, for example.
Programs that need precise timing such as
real-time programs such as simulations, flight navigation systems, and medical equipment. For example, in a fly-by-wire system, telemetry must be interpreted and acted upon within strict time constraints. Such systems must eliminate sources of unpredictable delays, which may be created by (some) interpreted languages, automatic garbage collection, paging operations, or preemptive multitasking. However, some higher-level languages incorporate run-time components and operating system interfaces that can introduce such delays. Choosing assembly or lower level languages for such systems gives programmers greater visibility and control over processing details.
cryptographic algorithms that must always take strictly the same time to execute, preventing timing attacks.
Modify and extend legacy code written for IBM mainframe computers.[43]
Situations where complete control over the environment is required, in extremely high security situations where nothing can be taken for granted.
Computer viruses, bootloaders, certain device drivers, or other items very close to the hardware or low-level operating system.
Instruction set simulators for monitoring, tracing and debugging where additional overhead is kept to a minimum
Reverse-engineering and modifying program files such as
existing binaries that may or may not have originally been written in a high-level language, for example when trying to recreate programs for which source code is not available or has been lost, or cracking copy protection of proprietary software.
Video games (also termed ROM hacking), which is possible via several methods. The most widely employed method is altering program code at the assembly language level.
Self-modifying code, to which assembly language lends itself well.
Games and other software for graphing calculators.[44]

text: Assembly language is still taught in most computer science and electronic engineering programs. Although few programmers today regularly work with assembly language as a tool, the underlying concepts remain very important. Such fundamental topics as binary arithmetic, memory allocation, stack processing, character set encoding, interrupt processing, and compiler design would be hard to study in detail without a grasp of how a computer operates at the hardware level. Since a computer's behavior is fundamentally defined by its instruction set, the logical way to learn such concepts is to study an assembly language. Most modern computers have similar instruction sets. Therefore, studying a single assembly language is sufficient to learn: I) the basic concepts; II) to recognize situations where the use of assembly language might be appropriate; and III) to see how efficient executable code can be created from high-level languages.[45] This is analogous to children needing to learn the basic arithmetic operations (e.g., long division), although calculators are widely used for all except the most trivial calculations.

text: Typical applications[edit]

text:
Assembly language is typically used in a system's boot code, the low-level code that initializes and tests the system hardware prior to booting the operating system and is often stored in ROM.  (BIOS on IBM-compatible PC systems and CP/M is an example.)
Some compilers translate high-level languages into assembly first before fully compiling, allowing the assembly code to be viewed for debugging and optimization purposes.
Some compilers for relatively low-level languages, such as Pascal or C, allow the programmer to embed assembly language directly in the source code. Programs using such facilities can then construct abstractions using different assembly language on each hardware platform. The system's portable code can then use these processor-specific components through a uniform interface.
Assembly language is useful in reverse engineering. Many programs are distributed only in machine code form which is straightforward to translate into assembly language, but more difficult to translate into a higher-level language. Tools such as the Interactive Disassembler make extensive use of disassembly for such a purpose. This technique is used by hackers to crack commercial software, and competitors to produce software with similar results from competing companies.
Assembly language is used to enhance speed of execution, especially in early Personal Computers with limited processing power and RAM.
Assemblers can be used to generate blocks of data, with no high-level language overhead, from formatted and commented source code, to be used by other code.


document_title: Mulan (soundtrack)

question_text: who sings true to your heart in mulan

question_tokens: who sings true to your heart in mulan

root

text: Mulan (soundtrack)

text: Track listing[edit]

text:
"Honor to Us All" — Beth Fowler, Lea Salonga and Marni Nixon
"Reflection" — Lea Salonga
"I'll Make a Man Out of You" — Donny Osmond and Chorus‡
"A Girl Worth Fighting For" — Harvey Fierstein, James Hong, Jerry Tondo, Lea Salonga and Matthew Wilder
"True to Your Heart" (Single) — 98° and Stevie Wonder
"Suite from Mulan" (Score)+
"Attack at the Wall" (Score)
"Mulan's Decision" (Score)
"Blossoms" (Score)
"The Huns Attack" (Score)
"The Burned-Out Village" (Score)
"Reflection" (Pop Version) — Christina Aguilera
"Mulan's Decision (Synthesizer Version Score) (aka Short Hair (Score))" - Limited Edition CD Bonus Track

tag: ol

text: ‡ Harvey Fierstein, Matthew Wilder, Lea Salonga and Eddie Murphy each have one line in the chorus while Jerry Tondo has two. + Featuring Jerry Goldsmith's main theme and orchestral renditions of the songs.

tag: p

text: Japanese Version Bonus track[edit]

text: 13. "Breathe (Special Version)" - Luna Sea

text: Chinese Version Bonus track[edit]

text: 13. "Reflection" (Pop Version) — Coco Lee

text: Korean Version Bonus track[edit]

text: 13. "Eternal Memory" - Lena Park (available in both English and Korean versions)

text: 13. "Reflection" - Lena Park (Korean Pop Version)

text: Canadian French Version[edit]

text:
"Pour notre honneur à tous" (To everyone's honor) -— Martine Chevrier, Dominique Faure, Catherine Léveillé & chorus
"Reflet" (Reflection) -- Martine Chevrier
"Je ferai de vous des hommes avant tout!" (I will make men out of you first!) - Robert Marien, Michel Charette, André Montmorency, Alain Couture, Anthony Kavanagh, Martine Chevrier & chorus
"La fille de nos rêves" (The girl of our dreams) - André Montmorency, Alain Couture, Michel Charette, Sébastien Dhavernas, Martine Chevrier & chorus
"True to Your Heart" — 98°, Stevie Wonder
"Suite pour Mulan" (Suite for Mulan) -- Instrumental
"Attaque au pied de la muraille" (Attack at the foot of the Wall) -- Instrumental
"La décision de Mulan" (Mulan's decision) -- Instrumental
"La jeune fille en fleurs" (The young blossoming girl) -- Instrumental
"Les Huns attaquent" (The Huns attack) -- Instrumental
"Le village en cendres" (The village in ashes) -- Instrumental
"Reflection (Version pop)" - Christina Aguilera

text: Greek Version[edit]

text:
"True to Your Heart (Single)" — 98°, Stevie Wonder
"Reflection" Instrumental — Vanessa-Mae
"Kamári ólon mas, esý (Honor to Us All)" (Καμάρι όλων μας, εσύ) [Pride of all of us, you] — Despina Vandi, Christina Koutsoudaki, Chorus
"Poiá eímai? (Ποιά είμαι;) (Reflection)" [Who am I;] — Despina Vandi
"Leventiá! (Λεβεντιά!) (I'll Make a Man Out of You)" [Manliness!] — Despina Vandi, Petros Filipidis, Alex Panayi, Kostas Vretos, Kostas Bakalis, Pimis Petrou, Chorus
"Aftí pou s' agapá... (Αυτή που σ' αγαπά...) (A Girl Worth Fighting For)" [She who loves ...] — Despina Vandi, Pimis Petrou, Kostas Vretos, Kostas Bakalis, Giannis Papaioannou
"Konta Mallia (Κοντά μαλλιά) (Short Hair)" Instrumental
"To Thema Tis Mulan (Το θέμα της Μουλάν) (Suite from Mulan)" Instrumental
"Epithesi Sto Tihos (Επίθεση στο τείχος) (Attack at the Wall)" Score
"I Apofasi Tis Mulan (Η απόφαση της Μουλάν) (Mulan's Decision)" Score
"Ta Anthi (Τα άνθη) (Blossoms)" Score
"I Epithesi Ton Ounon (Η επίθεση των Ούνων) (The Huns Attack)" Score
"To Kameno Horio (Το καμένο χωριό) (The Burned-Out Village)" Score
"Reflection (Pop Version)" — Christina Aguilera

text: Polish Version[edit]

text:
"Lustro / Mirror" (Reflection; Pop Version) — Edyta Górniak
"Zaszczyt nam przyniesie to / The honor will bring us to" (Honor to Us All) — Mirosława Krajewska, Teresa Lipowska, Katarzyna Pysiak, Chorus
"Lustro / Mirror" (Reflection) — Katarzyna Pysiak
"Zrobię z was mężczyzn / I will make of you men" (I'll Make a Man Out of You) — Maciej Molęda, Robert Rozmus, Jerzy Stuhr, Katarzyna Pysiak, Jerzy Bończak, Marek Bocianiak, Chorus
"Ta, za którą walczyć chcesz / This, for which you want to fight" (A Girl Worth Fighting For) — Robert Rozmus, Jerzy Bończak, Marek Bocianiak, Katarzyna Pysiak, Paweł Galia
"Postrzyżyny" (Short Hair) — Instrumental
"Suita z Mulan" (Suite from Mulan) — Instrumental
"Atak" (Attack at the Wall) — Score
"Decyzja" (Mulan's Decision) — Score
"Pąki" (Blossoms) — Score
"Natarcie Hunów" (The Huns Attack) — Score
"Spalona wioska" (The Burned-Out Village) — Score
"Reflection" Instrumental — Vanessa-Mae
"True to Your Heart (Single)" — 98°, Stevie Wonder

text: Spanish Latin America Version[edit]

text:
"Nos vas a Brindar Honor / We're going to Provide Honor"
"Reflejo / Reflection" — Analy
"Hombres de Acción Serán Hoy / Men of Action You'll Be Today" Cristian Castro, Jesús Barrero, Miguel Ángel Ghigliazza, Raúl Carballeda, Eugenio Derbez, Analy
"Mi Chica es la Razón / My Girl is Reason" Raúl Carballeda, Analy, Mario Filio, Miguel Ángel Ghigliazza, Jesús Barrero
"Tu corazón / Your heart" — Cristian Castro
"Suite de Mulán"
"Ataque en la Muralla"
"La decisión de Mulán"
"Capullos"
"Atacan los hunos"
"La aldea quemada"
"Reflejo" (Versión Pop) — Lucero
"Reflejo" — Christina Aguilera (Special Edition)

text: Arabic Version[edit]

text:
ترفع رأسنا بين الناس / Turfae rasuna bayn alnnas / Lift our heads among the people (Honor to Us All)
مولان في المعركة / Mulan fi almaeraka / Mulan in battle (Mulan's fight)
صورتي / Surati / My photo (Reflection)
منكم هعمل رجال مهما يكون / Minkum haemal rijal mahma yakun / Whatever you men have (I'll Make a Man Out of You)
قرار مولان / Qarar mawlan (Mulan's Decision)

text: Brazilian Version[edit]

text:
'Honra a Todas Nós / Honor All Of Us' (Honor to Us All) — Kacau Gomes, Nádia Carvalho & Selma Lopes
'Imagem / Image' (Reflection) — Kacau Gomes
'Não Vou Desistir de Nenhum / I Will not Give up on You' (I'll Make a Man Out of You) — Cláudio Galvan
'Alguém pra Quem Voltar / Someone Who to Come Back' (A Girl Worth Fighting For) - Isaac Bardavid, Marco Rodrigo & Deco Fiori
'Seu Coração / Your heart' (True to Your Heart) — Sandy & Junior · Portuguese lyrics by Pavlos | Produced by Renato Lopez
'Tema de Mulan [Instrumental]' (Suite from Mulan)
'Ataque na Muralha [Instrumental]' (Attack at the Wall)
'A Decisão de Mulan [Instrumental]' (Mulan's Decision)
'Botões em Flor [Instrumental]' (Blossoms)
'O Ataque Hunos [Instrumental]' (The Huns Attack)
'A Aldeia Queimada [Instrumental]' (The Burned-Out Village)
'Imagem (Pop Version)' (Reflection - Pop Version) — Sandy · Portuguese lyrics by Marcelo Coutinho | Produced by Renato Lopez

text: Mandarin Chinese version[edit]

text:
以妳為榮 (Yi Ni Wei Rong)
真情的自我 (Zhen Qing de Zi Wo)
男子漢 (Nan Zi Han)
佳人歡迎我 (Jia Ren Huan Ying Wo)
依隨你心 (Yi Sui Ni Xin)
木蘭組曲 (Mu Lan Zu Qü)
攻上城牆 (Gong Shang Cheng Qiang)
木蘭的決定 (Mu Lan de Jüe Ding)
遲來的花開 (Chi Lai de Hua Kai)
匈奴進攻 (Xiong Nu Jin Gong)
村破垣殘 (Cun Po Yuan Can)
自己 (Zi Ji) - Coco Lee

text: Italian Version[edit]

text:
"Molto onore ci darai / Much honor you give us" – Cristina Dori, Melina Cartello, Marianna Cataldi, [[
"Riflesso / Reflection" – Marianna Cataldi
"Farò di te un uomo / I will make you a man" – Silver Pozzoli, Enrico Papi, Vittorio Matteucci, Gigi Giannola, Veris Giannetti, Marianna Cataldi
"Per lei mi batterò / I will fight for her" – Vittorio Matteucci, Veris Giannetti, Gigi Giannola, Laura Lenghi, Michele Centonze
"Taglio di capelli / Haircut"
"Suite per Mulan / Suite for Mulan"
"Attacco alla muraglia / Assault on wall"
"La decisione di Mulan / The decision to Mulan"
"Germogli in fiore / Buds in bloom"
"L'attacco degli unni / The Huns attack"
"Il villaggio in fiamme / The burning village"
"Riflesso (Pop Version)" — Syria

text: Charts[edit]

text: Album

text:
Year
Chart
Position

1998
The Billboard 200
24

tag: table

text: Singles

text:
Year
Single
Artist
Chart
Position

1998
"Reflection"
Christina Aguilera
Adult Contemporary
19[4]

text: Unreleased songs[edit]

text: "Keep 'Em Guessing"[edit]

text: A deleted song aptly called "Keep 'Em Guessing", which was removed from the film when Eddie Murphy was cast as Mushu. This song was revealed on the Mulan 2-Disc Special Edition but Disney chose not to re-release the soundtrack to Mulan, despite doing so for the soundtracks to Beauty and the Beast, The Lion King, and Aladdin. It was brought back for the stage musical Mulan Jr..

text: "Written in Stone"[edit]

text: This song was originally placed in the section where Mulan questions her identity, and decides to write her own destiny rather than succumbing to societal gender roles. It was eventually replaced by Reflection. Despite originally being a 4-minute power ballad, in the stage musical Mulan Jr., it is broken up into small pieces, and reprised many times throughout the musical. It is sung by the ancestors in the intro as they explain the family structure of China much like Tradition in Fiddler on the Roof. A later reprise by Mulan demonstrates that she wants her life to be written in stone....but by herself, not by her ancestors.


document_title: The Lion King II: Simba's Pride

question_text: who does the voice of kiara in lion king 2

text: The Lion King II: Simba's Pride

text: Plot[edit]

text: In the Pride Lands of Africa, King Simba and Queen Nala's newborn daughter, Kiara, is presented to the assembled animals by Rafiki, a mandrill who serves as shaman and advisor. Simba's father Mufasa proudly watches over the ceremony from the Heavens above. Kiara becomes annoyed with her father's overprotective parenting. Simba assigns Timon and Pumbaa, a meerkat and warthog, to follow her. Kiara ignores her father's warning and the duo's attention and enters the "Outlands," where she meets a young cub, Kovu, and they escape from crocodiles while befriending each other. When Kovu retaliates to Kiara's playing, Simba confronts the young cub just as he is confronted by Zira, Kovu's mother and Scar's mate. Zira reminds Simba of how he exiled her and the other Outsiders, and she reveals that Scar selected Kovu to be his successor despite not being his biological father.

text: After returning to the Pride Lands, Nala and the rest of the pride head back to Pride Rock while Simba lectures Kiara about the danger posed by the Outsiders. He then tells her that they are a part of each other. In the Outlands, Zira reminds Kovu that Simba killed Scar and exiled the lionesses who respected him. Kovu explains that he does not think it is so bad to have Kiara as a friend, but Zira realizes she can use Kovu's friendship with Kiara to seek revenge on Simba.

text: Several years later, Kiara, now a young adult, begins her first solo hunt. Simba has Timon and Pumbaa follow her in secret, causing her to hunt away from the Pride Lands. As part of Zira's plan, Kovu's siblings Nuka and Vitani trap Kiara in a fire, allowing Kovu to rescue her. Unable to thank the young rogue, Simba is forced to accept Kovu's place since he rescued Kiara. Later that night, Simba has a nightmare about attempting to save Mufasa from falling into the wildebeest stampede but is stopped by Scar who then morphs into Kovu and sends Simba to his death.

text: The next day, Kovu contemplates attacking Simba as he was instructed to, but he teaches Kiara how to hunt instead and eventually realizes his feelings for her. Later, Kiara and Kovu stargaze where they talk about the Great Kings of the Past and Kovu wonders if there is a darkness in him like there was in Scar. Simba watches the two from afar and Nala convinces him to give Kovu a chance. Kovu attempts to reveal his mission to Kiara, but Rafiki interrupts and leads them to the jungle, where he introduces them to "upendi" (an erroneous form of upendo, which means "love" in Swahili). The two lions fall in love. That night, Simba allows Kovu to sleep inside Pride Rock with the rest of the pride, but Vitani tells Zira about Kovu's failure to kill Simba. Zira sets a trap for her son and Simba.

text: The next day, Kovu attempts to reveal his mission to Kiara, but Simba takes him around the Pride Lands and tells him the real story of how Scar died. The Outsiders attack Simba and Kovu attempts to intervene, but Vitani injures him. Nuka attempts to kill Simba, but Simba escapes and Nuka is killed. Zira scratches Kovu for Nuka's death, causing him to turn on her. Kovu returns to Pride Rock to plead Simba for his forgiveness but is exiled. Kiara makes Simba realize that he is acting irrationally, and flees to find Kovu. The two lions later find each other and profess their love. Realizing that they must reunite the Outsiders and Pridelanders, Kiara and Kovu return to the Pride Lands, where they convince the two sides to stop fighting. Zira, refusing to surrender, attempts to kill Simba, but Kiara intervenes and Zira falls to her death.

text: With his enemy gone, Simba accepts the Outsiders back into the Pride Lands, and appoints Kovu and Kiara as his successors.

text: Voice cast[edit]

text:
Matthew Broderick as Simba, son of Mufasa and Sarabi, King of the Pride Lands and Kiara's overprotective father. Cam Clarke provided his singing voice. Ian Harrowell served as the supervising animator for Simba.
Moira Kelly as Nala, Queen of the Pride Lands, Simba's mate and Kiara's mother. Ian Harrowell served as the supervising animator for Nala.
Nathan Lane as Timon, a wise-cracking and self-absorbed yet somewhat loyal meerkat who is Pumbaa and Simba's best friend. Bob Baxter served as the supervising animator for Timon.
Ernie Sabella as Pumbaa, a naïve warthog who suffers from flatulence and is Timon's and Simba's best friend. Bob Baxter served as the supervising animator for Pumbaa.
Robert Guillaume as Rafiki, the mandrill shaman of The Pride Lands. Bob Baxter served as the supervising animator for Rafiki.
Edward Hibbert as Zazu, a hornbill who serves as the king's majordomo. Bob Baxter served as the supervising animator for Zazu.
Neve Campbell as Kiara, daughter of Simba and Nala. Liz Callaway provided adult Kiara's singing voice. Lianne Hughes served as the supervising animator for Kiara.

Michelle Horn voiced young Kiara, while Charity Sanoy provided her singing voice and Ashley Edner provided her lion growls.

Jason Marsden as Kovu, Zira's son and Nuka and Vitani's younger brother. Gene Miller provided Kovu's singing voice. Andrew Collins served as the supervising animator for Kovu.

Ryan O'Donohue provided the voice of young Kovu.

Andy Dick as Nuka, Zira's son, Vitani and Kovu's older brother and the oldest male of Zira's family. Ian Harrowell served as the supervising animator for Nuka.
Jennifer Lien as Vitani, Zira's daughter and Nuka and Kovu's sister. Kevin Peaty served as the supervising animator for Vitani.

Lacey Chabert voiced young Vitani while Crysta Macalush provided her singing voice.

Suzanne Pleshette as Zira, the leader of the Outsiders, Scar's most loyal follower and the mother of Nuka, Vitani, and Kovu. Kevin Peaty served as the supervising animator for Zira.
James Earl Jones as Mufasa, Simba's father and the previous King of the Pride Lands.
Jim Cummings as Scar, Mufasa's younger brother, Simba's uncle and Kiara's great-uncle, who appears in a brief cameo.

tag: ul

text: Production[edit]

text: Discussion began about the possibility of a sequel to The Lion King before the first film even hit theaters.[1] In January 1995, it was reported that a Lion King sequel was to be released "in the next twelve months".[2] However, it was delayed, and then it was reported in May 1996 that it would be released in "early next year" of 1997.[3] By 1996, producer Jeannine Roussel and director Darrell Rooney signed on board to produce and direct the sequel.[4] In August 1996, Cheech Marin reported that he would reprise his role as Banzai the Hyena from the first film, but the character was ultimately cut from the sequel.[5] In December 1996, Matthew Broderick was confirmed to be returning as Simba while his wife, Sarah Jessica Parker, and Jennifer Aniston were in talks to voice Aisha, Simba's daughter. Andy Dick was also confirmed to have signed on to voice Nunka, the son of Scar, who attempts to romance Aisha.[6] Ultimately, the character was renamed Kiara, and voiced by Neve Campbell.[7] Nunka was renamed Kovu, and voiced by Jason Marsden.[8] Then-Disney CEO Michael Eisner urged for Kovu's relationship to Scar to be changed during production as being Scar's son would make him Kiara's first cousin once-removed. According to Rooney, the final draft gradually became a variation of Romeo and Juliet. "It's the biggest love story we have," he explained. "The difference is that you understand the position of the parents in this film in a way you never did in the Shakespeare play."[9] Because none of the original animators were involved in the production, the majority of the animation was done by Walt Disney Television Animation's studio in Sydney, Australia. However, all storyboarding and pre-production work was done at the Feature Animation studio in Burbank, California.[9] By March 1998, Disney confirmed the sequel would be released on October 27, 1998.[10]

text: Release[edit]

text: Coincided with its direct-to-video release, Simba's Pride was accompanied with a promotional campaign which included tie-ins with McDonald's, Mattel, and Lever 2000.[11][12][13] Unlike the North American release, Simba's Pride was theatrically released in European and Latin American countries in spring 1999.[14][15]

text: Home media[edit]

text: The film was first released on VHS in the United States on October 27, 1998 and on DVD as a limited issue on November 23, 1999. The DVD release featured the film in a letterboxed 1.66:1 aspect ratio, the trailer for the movie, and a music video of "Love Will Find A Way" performed by Heather Headley and Kenny Lattimore.[16] In 1998, Disney believed that The Lion King II: Simba's Pride would be so popular that it shipped 13 million copies to stores for the October 27 release date.[17] In March 2001, it was reported that in its first three days, 3.5 million VHS copies were sold, and ultimately about thirteen million copies were sold.[18] In September 2001, it was reported that Simba's Pride had sold more than 15 million copies.[19] Overall, consumer spending on The Lion King II: Simba's Pride accumulated about $300 million — roughly the same figure of its predecessor's theatrical release at that time,[20] and continues to be one of the top-selling direct-to-video releases of all time, with $464.5 million worldwide in sales and rentals.[21]

text: On August 31, 2004, the film was re-released on VHS and a 2-Disc Special Edition DVD. The DVD edition featured optional pop-up informational commentary, interactive games (the "Virtual Safari") featuring Timon, Pumbaa and Rafiki, five humorous "Find Out Why" shorts, an animated short based on Lebo M's "One By One", and a "Proud of Simba's Pride" featurette.[22] The Special Edition version featured changes made to the film such as Kovu in the water being inexplicably re-animated as well as other alterations.[16] A DVD boxed set of the three The Lion King films (in two-disc Special Edition formats) was released on December 6, 2004. In January 2005, the film, along with the sequels, went back into moratorium.[23]

text: On October 4, 2011, Simba's Pride was included in an eight-disc box set trilogy set with the other two films.[24] The Blu-ray edition for the film was released as a separate version on March 6, 2012.[25] The Blu-ray edition has three different versions, a 2-disc Blu-ray/DVD combo pack, a 1-disc edition, and a digital download. The Blu-ray edition has also been attached with a new Timon & Pumbaa short, in which the two friends gaze at the night sky as the star constellations resemble their favorite meal, insects.[25]

text: Reception[edit]

text: Critical response aggregator Rotten Tomatoes gave the film an approval rating of 33% based on six reviews with an average score of 5.6/10.[26]

text: Siskel & Ebert gave the film a "two-thumbs up" and said it was a "satisfactory sequel to one of the most popular films of all time, The Lion King". However, they also said it was best that it went to video, citing that the music was lacking and not remotely equal to the original's soundtrack.[27] TV Guide gave the film 2½ stars out of four, claiming that, despite being of slightly higher quality than Disney's previous direct-to-video animated sequels, "comes nowhere near the level of its big-screen predecessor", either musically or artistically. The review later went on to say that "Though most of the original characters and their voices are back, they all sound bored, apart from the zesty addition of Suzanne Pleshette as the scheming Zira. The overall result is OK for kids, who will enjoy the low humor provided by the comical meerkat Timon and the flatulent warthog Pumbaa, but it could have been so much better."[28]

text: Writing for Variety, Joe Leydon commented in his review "In marked contrast to most of the studio's small screen sequels to bigscreen animated hits, the new pic isn't merely kids' stuff. Not unlike its predecessor, Lion King II has enough across-the-board appeal to entertain viewers of all ages."[29] Caryn James of The New York Times concluded her review with "It's the rare sequel that matches the creative flair of an original, of course. The Lion King II may be derivative, but it is also winning on its own."[8]

text: Entertainment Weekly critic Stephen Witty, who graded the sequel a C+, wrote, "Despite its drawbacks, The Lion King II could make a decent rental for undemanding under-7 fans of the original, who won't be overburdened by the psychodrama. For true believers who've already watched and rewound their copies to shreds, it might even make a good buy. And for them, hey, hakuna matata. But for the rest of us, caveat emptor might be a better motto."[30] James Plath of Movie Metropolis gave the film 6/10, saying that, "Simply put, we've seen it all before."[31] Felix Vasquez Jr. of Cinema Crazed derided, "the sequel is as predictable a sequel as can be. It takes from The Fox and the Hound with shades of Romeo and Juliet and side steps the interesting Simba in favor of his bland daughter Kiara, and Timon and Pumba [sic]."[32]

text: Music[edit]

text: Songs[edit]

text: The songwriters were Marty Panzer, Tom Snow, Kevin Quinn, Randy Petersen, Mark Mancina, Jay Rifkin, Lebo M, Jack Feldman, Scott Warrender, and Joss Whedon.

text:
"He Lives in You" – Sung by Lebo M and his African choir. This song represents Kiara's birth and is the equivalent of "Circle of Life". The song is a reference to when Rafiki told Simba in the first film that Mufasa "lives" in him. Also appears in the Broadway version of the first film. The end title is performed by Tina Turner.
"We Are One" – Sung by Cam Clarke and Charity Sanoy. Following Kiara's encounter with Kovu and Zira in which she endangers herself, Simba explains how important she is to the pride and that the pride is one.
"My Lullaby" – Sung by Suzanne Pleshette, Andy Dick, and Crysta Macalush. Zira's lullaby to Kovu, which outlines her plot for him to kill Simba and how proud it would make her.
"Upendi" – Sung by Robert Guillaume, Liz Callaway, Gene Miller, and Ladysmith Black Mambazo. Rafiki's song to Kiara and Kovu about love, friendship, and happiness. Sung by Rafiki and his animal friends.
"One of Us" – Sung following Kovu being exiled by Simba after he accuses Kovu of betraying him. This was the first time the animals other than lions outside of the main characters (excluding The Lion King 1½) have been seen talking.
"Love Will Find a Way" – Sung by Liz Callaway and Gene Miller. A romantic love song that includes of Kiara and Kovu's first encounter following Kovu's banishment. The pair concludes that their mutual feelings for each other are too strong and true for their differences to keep them apart. The end title version is performed by R&B artists Kenny Lattimore and Heather Headley.

text: Soundtrack[edit]

text: An audio CD entitled Return to Pride Rock: Songs Inspired by Disney's The Lion King II: Simba's Pride was released on September 8, 1998. Although not promoted as a soundtrack to the film, it contained all the songs from the film and some additional songs inspired by it by Lebo M.

text: Related television series[edit]

text: In January 2016, a television series titled The Lion Guard began airing on Disney Junior, following a television pilot film The Lion Guard: Return of the Roar in November 2015. The series takes place during the years in-between Kiara's first meeting with Kovu as a cub and her first hunt as a young adult.[33] It focuses on Kiara's younger brother Kion who as second-born, becomes leader of The Lion Guard, a group who protect the Pride Lands and defend the Circle of Life.

text: Kovu, Nuka, Vitani and Zira appear in the season one episode "Lions of the Outlands".


document_title: The Battle of Maldon

question_text: who is the first to flee in the battle of maldon and why did he flee

text: The Battle of Maldon

text: The poem[edit]

text: The poem is told entirely from the perspective of the English, and names many individuals that Mitchell and Robinson [1] believe were real Englishmen.

text: Mitchell and Robinson conjecture that the lost opening of the poem must have related how Byrhtnoth, the Anglo-Saxon leader, hearing of the Viking invasion, raised his troops and led them to the shore.[1]

text: The poem as we have it begins with the Anglo-Saxon warriors dismounting to prepare for battle. A Viking messenger offers the English ealdorman Byrhtnoth peace if he will consent to pay tribute. Byrhtnoth angrily refuses, telling the messenger that he will fight the heathen Vikings in defense of his land, and the land of his king, Æthelred. However, due to his "ofermōde"*, Byrhtnoth allows the Vikings entry to the mainland, giving them room in which to do battle, rather than keeping them penned in on the more easily defended causeway that links the mainland to the small island where the Vikings have landed.

text: Individual episodes from the ensuing carnage are described, and the fates of several Anglo-Saxon warriors depicted – notably that of Byrhtnoth himself, who dies urging his soldiers forward and commending his soul to God. Not all the English are portrayed as heroic however: one, Godric the son of Odda (there are two Godrics in the poem), flees the battle with his brothers and, most improperly, does so on Byrhtnoth's horse. Several lines later, the English lord Offa claims that the sight of Byrhtnoth's horse (easily recognisable from its trappings) fleeing, and so Byrhtnoth, as it would appear from a distance, has bred panic in the ranks and left the English army in danger of defeat. There follow several passages in which English warriors voice their defiance and their determination to die with their lord, and descriptions of how they are then killed by the un-personified "sea-wanderers". The poem as it has come down to us ends with another Godric disappearing from view. This time, it is Godric, the son of Æthelgar, advancing into a body of Vikings and being killed.

text: "ofermōde," occurring in line 89, has caused much discussion. Literally "high spirits" or "overconfidence", "ofermōde" is usually translated as "pride", and occurs in Anglo-Saxon Genesis poems when referring to Lucifer. Both Glenn and Alexander translate it as "arrogance"[2] and Bradley as "extravagant spirit".[3]

text: History of the text[edit]

text: In 1731, the only known manuscript of the poem (which, as with the modern version, was missing its beginning and ending[3]) was destroyed in the fire at Ashburnham House that also damaged and destroyed several other works in the Cotton library. The poem has come down to us thanks to the transcription of it made c. 1724, which was published by Thomas Hearne in 1726. After being lost, the original transcription was found in the Bodleian Library in the 1930s.[4][5] Who made this original transcription is still unclear, some favouring John Elphinstone,[2][3][4][5] others David Casley.[1][6]

text: Date of composition[edit]

text: According to some scholars, the poem must have been written close to the events that it depicts, given the historical concreteness and specificity of the events depicted in the poem.[7][7] According to Irving, the specific events told with such clarity could only have been composed shortly after the events had taken place, and before legend had been introduced into the poem.[7] While this may seem strange to a modern audience, who are used to “realistic fiction,” this is in fact a fairly strong argument for an early composition date. The lack of legendary elements seems to indicate that this poem was written at a time when witnesses or close descendants of witnesses would have been able to attest to the validity and accuracy of the facts.

text: Niles, in his essay “Maldon and Mythopoesis”, also argues for an early composition date. He states that the three direct references to Æthelred the Unready necessitate an early composition date, before Æthelred had achieved his reputation for ineffectiveness.[8][8] This argument hinges upon Byrhtnoth’s, and the poet’s, degree of knowledge of Aethelred’s ill reputation. If Byrhtnoth had known of Aethelred’s nature, would he have been willing to sacrifice himself for an undeserving king, effectively throwing away his own life and those of his men? Niles indicates that this does not appear to be supportable through the actions and statements of Byrhtnoth throughout the poem.[8] Apparently Byrhtnoth did not know of the king’s nature, and most likely the poet himself did not know of the king’s nature either. If the poet had known, he would likely have mentioned it in an aside, similar to the way he treats the coward Godric when he is first introduced within the poem.

text: Some of these arguments have been rebutted; George Clark, for instance, argues against an early composition date, rebutting Irving, and states that the detail and specificity found in the poem do not necessarily necessitate an early composition date.[9][9] Clark argues that if one accepts the detail and specificity as indicators that the events were related to the poet by a witness or close descendant, then the presenter or narrator must have either been “one of the cowards or a retainer who missed the battle by legitimate accident and later chatted with one or more of the men who abandoned his lord”.[9]

text: Other arguments against an early date focus on vocabulary and spelling, which, it is argued, suggest that the poem had its origins in the 11th century in western England, rather than from the 10th century in eastern England (where Maldon is located).[9][10][10] These arguments are not based upon one or two spellings which may have been transcribed poorly, but rather upon the uniform spelling of specific indicative words in Old English which are often associated with dialectical writing, such as “sunu” and “swurd”.[10] Clark further argues against an early composition date by exposing the contradictory descriptions of Byrhtnoth, both within the poem and against historical record. According to Clark, the poet of Maldon describes Byrhtnoth as an old warrior, but able-bodied (paraphrased); however, later in the poem Byrhtnoth is disarmed easily by a Viking. Clark argues that these two events are conflicting and therefore demonstrate the lack of historical accuracy within the poem.[9] Clark also argues that the poet never mentions the great height of Byrhtnoth, nor does he mention Byrhtnoth “enfeebled by age”,[9] which indicates that the poet was removed from the event, for the historical records show that Byrhtnoth was tall, which the poet would not have left out due to its indicative nature.[9]

text: Scholarship[edit]

text: George K. Anderson dated The Battle of Maldon to the 10th century and felt that it was unlikely that much was missing.[11] R.K. Gordon is not so specific, writing that this "last great poem before the Norman Conquest ... was apparently written very soon after the battle",[12] while Michael J. Alexander speculates that the poet may even have fought at Maldon.[2]

text: S.A.J. Bradley reads the poem as a celebration of pure heroism – nothing was gained by the battle, rather the reverse: not only did Byrhtnoth, "so distinguished a servant of the Crown and protector and benefactor of the Church," die alongside many of his men in the defeat, but the Danegeld was paid shortly after – and sees in it an assertion of national spirit and unity, and in the contrasting acts of the two Godrics the heart of the Anglo-Saxon heroic ethos.[3] Mitchell and Robinson are more succinct: "The poem is about how men bear up when things go wrong".[1] Several critics have commented on the poem's preservation of a centuries-old Germanic ideal of heroism:

text: Maldon is remarkable (apart from the fact that it is a masterpiece) in that it shows that the strongest motive in a Germanic society, still, nine hundred years after Tacitus, was an absolute and overriding loyalty to one's lord.

text: Modern Sequel[edit]

text: The Anglo-Saxon scholar and writer J. R. R. Tolkien was inspired by the poem to write The Homecoming of Beorhtnoth Beorhthelm's Son, an alliterative dialogue between two characters at the end of the battle. In publishing the work, Tolkien included alongside it an essay on the original poem and another on the word "ofermōde".


document_title: Electronic voting in India

question_text: name the first indian state to use electronic voting machines

text: Electronic voting in India

text: History[edit]

text: In 1980, M. B. Haneefa invented the first Indian voting machine, gazetted "Electronically operated vote counting machine" (Gazette: 191/Mas/80, 15 October 1980). His original design (using Integrated Circuits) was exhibited to the public in Government Exhibitions held in six cities across Tamil Nadu. The EVMs were commissioned in 1989 by Election Commission of India in collaboration with Electronics Corporation of India Limited.[9] The Industrial designers of the EVMs were faculty members at the Industrial Design Centre, IIT Bombay.[10] The EVMs were first used in 1982 in the by-election to North Paravur Assembly Constituency in Kerala for a limited number of polling stations.[11]

text: Design and technology[edit]

text: An EVM consists of two units, control unit and balloting unit. The two units are joined by a five-meter cable. Balloting unit facilitates voting by voter via labelled buttons while control unit controls the ballot units, stores voting counts and displays the results on 7 segment LED displays. The controller used in EVMs has its operating program etched permanently in silicon at the time of manufacturing by the manufacturer. No one (including the manufacturer) can change the program once the controller is manufactured.

text: EVMs are powered by an ordinary 6 volt alkaline battery [12] manufactured by Bharat Electronics Limited, Bangalore and Electronics Corporation of India Limited, Hyderabad. This design enables the use of EVMs throughout the country without interruptions because several parts of India do not have power supply and/or erratic power supply.

text: An EVM can record a maximum of 3840 votes and can cater to a maximum of 64 candidates. There is provision for 16 candidates in a single balloting unit and up to a maximum of 4 units can be connected in parallel. The conventional ballot paper/box method of polling is used if the number of candidates exceeds 64. It is not possible to vote more than once by pressing the button again and again. As soon as a particular button on the balloting unit is pressed, the vote is recorded for that particular candidate and the machine gets locked. Even if one presses that button further or any other button, no further vote will be recorded. This way the EVMs ensure the principle of "one person, one vote".

text: Procedure to use[edit]

text: The control unit is with the presiding officer or a polling officer and the balloting Unit is placed inside the voting compartment. The balloting unit presents the voter with blue buttons (momentary switch) horizontally labelled with corresponding party symbol and candidate names. The Control Unit on the other hand provides the officer in-charge with a "Ballot" marked button to proceed to the next voter, instead of issuing a ballot paper to them. This activates the ballot unit for a single vote from the next voter in queue.The voter has to cast his vote by once pressing the blue button on the balloting unit against the candidate and symbol of his choice.

text: As soon as the last voter has voted, the Polling Officer in-charge of the Control Unit will press the 'Close' Button. Thereafter, the EVM will not accept any votes. Further, after the close of poll, the Balloting Unit is disconnected from the Control Unit and kept separately. Votes can be recorded only through the Balloting Unit. Again the Presiding officer, at the close of the poll, will hand over to each polling agent present an account of votes recorded. At the time of counting of votes, the total will be tallied with this account and if there is any discrepancy, this will be pointed out by the Counting Agents. During the counting of votes, the results are displayed by pressing the 'Result' button. There are two safeguards to prevent the 'Result' button from being pressed before the counting of votes officially begins. (a) This button cannot be pressed till the 'Close' button is pressed by the Polling Officer in-charge at the end of the voting process in the polling booth. (b) This button is hidden and sealed; this can be broken only at the counting center in the presence of designated office.

text: Benefits[edit]

text: The cost per EVM was ₹5,500 (equivalent to ₹41,000 or US$640 in 2016) at the time the machines were purchased in 1989–90. The cost was estimated to be ₹10,500 (equivalent to ₹12,000 or US$180 in 2016) per unit as per an additional order issued in 2014[13]. Even though the initial investment was heavy, it has since been expected to save costs of production and printing of crores of ballot papers, their transportation and storage, substantial reduction in the counting staff and the remuneration paid to them. For each national election, it is estimated that about 10,000 tonnes of ballot paper is saved. EVMs are easier to transport compared to ballot boxes as they are lighter, more portable, and come with polypropylene carrying cases. Vote counting is also faster. In places where illiteracy is a factor, illiterate people find EVMs easier than ballot paper system. Bogus voting is greatly reduced as the vote is recorded only once. The unit can store the result in its memory before it is erased manually. The battery is required only to activate the EVMs at the time of polling and counting and as soon as the polling is over, the battery can be switched off. The shelf life of Indian EVMs is estimated at 15 years[14].

text: Limitations[edit]

text: A candidate can know how many people from a polling station voted for him. This is a significant issue particularly if lop-sided votes for/against a candidate are cast in individual polling stations and the winning candidate might show favoritism or hold grudge on specific areas. The Election Commission of India has stated that the manufacturers of the EVMs have developed a Totaliser unit which can connect several balloting units and would display only the overall results from an Assembly or a Lok Sabha constituency instead of votes from individual polling stations.[15][16]

text: The control units do not electronically transmit their results back to the Election Commission, even though a simple and unconditionally secure protocol for doing this exists. The Indian EVMs are purposely designed as stand-alone units to prevent any intrusion during electronic transmission of results. Instead, the EVMs are collected in counting booths and tallied on the assigned counting day(s) in the presence of polling agents of the candidates.

text: Security issues[edit]

text: An international conference on the Indian EVMs and its tamperability of the said machines was held under the chairmanship of Subramanian Swamy, President of the Janata Party and former Union Cabinet Minister for Law, Commerce and Justice at Chennai on 13 February 2010. The conclusion was that the Election Commission of India was shirking its responsibility on the transparency in the working of the EVMs.[17] In April 2010, an independent security analysis[1] was released by a research team led by Hari Prasad, Rop Gonggrijp, and J. Alex Halderman. The study included video demonstrations[2] of two attacks that the researchers carried out on a real EVM, as well as descriptions of several other potential vulnerabilities[4][18]

text: In order to mitigate these threats, the researchers suggest moving to a voting system that provides greater transparency, such as paper ballots, precinct count optical scan, or a voter verified paper audit trail, since, in any of these systems, sceptical voters could, in principle, observe the physical counting process to gain confidence that the outcome is fair. But Election Commission of India points out that for such tampering of the EVMs, one needs physical access to EVMs, and pretty high tech skills are required. Given that EVMs are stored under strict security which can be monitored by candidates or their agents all the time, its impossible to gain physical access to the machines. Plus, to impact the results of an election, hundreds to thousands of machines will be needed to tamper with, which is almost impossible given the hi-tech and time consuming nature of the tampering process.[19][20]

text: On 25 July 2011, responding to a PIL (Writ Petition (Civil) No. 312 of 2011), Supreme Court of India asked EC to consider request to modify EVMs and respond within 3 months. The petitioner Rajendra Satyanarayan Gilda had alleged that EC has failed to take any decision despite his repeated representation. The petitioner suggested that the EVMs should be modified to give a slip printed with the symbol of the party in whose favour the voter cast his ballot.[5][21][22][23]

text: On 17 January 2012, Delhi High Court in its ruling on Dr. Subramanian Swamy's Writ Petition (Writ Petition (Civil) No. 11879 of 2009) challenging the use of EVMs in the present form said that EVMs are not "tamper-proof". Further, it said that it is "difficult" to issue any directions to the EC in this regard. However, the court added that the EC should itself hold wider consultations with the executive, political parties and other stake holders on the matter.[24][25]

text: Swamy appealed against Delhi High Court's refusal to order a VVPAT system in Supreme Court. On 27 September 2012, Election Commission's advocate Ashok Desai submitted to a Supreme Court bench of Justice P Sathasivam and Justice Ranjan Gogoi that field trial for VVPAT system is in progress and that a status report will be submitted by early January 2013. Desai said that on pressing of each vote, a paper receipt will be printed, which will be visible to the voters inside a glass but cannot be taken out of the machine. Dr Swamy said that the new system was acceptable to him.

text: The Supreme Court posted the matter for further hearing to 22 January 2013[26][27] and on 8 October 2013, it delivered a verdict, that the Election Commission of India will use VVPAT[28].

text: Another similar writ petition filed by the Asom Gana Parishad is still pending before the Gauhati High Court.[29]

text: Voter-verified paper audit trail[edit]

text: On 8 October 2010 Election Commission appointed an expert technical committee headed by Prof PV Indiresan (former Director of IIT-M) when at an all-party meeting majority of political parties backed the proposal to have a VVPAT in EVMs to counter the charges of tampering. The committee was tasked to examine the possibility of introduction of a paper trail so that voters can get a printout that will show symbol of the party to which the vote was cast.[6] After studying the issue, the committee recommended introduction of VVPAT system.[30]

text: On 21 June 2011, Election Commission accepted Indiresan committee's recommendations and decided to conduct field trials of the system.[31] On 26 July 2011, field trials of the VVPAT system were conducted at Ladakh in Jammu and Kashmir, Thiruvananthapuram in Kerala, Cherrapunjee in Meghalaya, East Delhi in Delhi and Jaisalmer in Rajasthan.[32][33]

text: Just two days after Delhi High Court judgement saying EVMs are not "tamper-proof", Election Commission on 19 January 2012 ordered Electronics Corporation of India Limited and Bharat Electronics Limited (BEL) to make EVMs that will generate a "paper trail" of the vote cast. BEL CMD Anil Kumar said: "The new EVMs' paper trail should make the poll process safer and tamper-proof. EC has given us its requirement for EVMs and work is on to incorporate new features. The EVM software will be modified and a printer attached to it. When you cast a vote, the serial number and some data will be generated as a printout. It is to ensure that there is no malpractice in the voting system." It appears that, when the voter presses the button for the candidate of his choice in the EVM, a paper ballot with the serial number, name and symbol of the candidate will be printed.[34] The printouts will be used later to cross-check the voting data stored in the EVMs. Talking about other features in new EVMs, he said the machines will be more rugged and smaller in size but with more computing power.[7][35]

text: The voter-verified paper audit trail (VVPAT) system which enables EVM to record each vote cast by generating the EVM slip,[36] was introduced in 8 of 543 parliamentary constituencies as a pilot project.[8][37][38][39] VVPAT is implemented in Lucknow, Gandhinagar, Bangalore South, Chennai Central, Jadavpur, Raipur, Patna Sahib and Mizoram constituencies.[40][41][42][43][44][45] Voter-verified paper audit trail was first used in an election in India in September 2013 in Noksen (Assembly Constituency) in Nagaland.[46][47]

text: On 8 October 2013, Supreme Court of India delivered its verdict on Subramanian Swamy's PIL, that Election Commission of India will use VVPAT along with EVMs in a phased manner and the full completion should be achieved by 2019.[48][49][50][51][28]

text: Exports[edit]

text: Nepal, Bhutan, Namibia and Kenya have purchased India-manufactured EVMs. Fiji was expected to use Indian EVMs in its elections in 2014. In 2013, the Election Commission of Namibia acquired 1700 control units and 3500 ballot units from India's Bharat Electronics Limited; these units will be used in the regional and presidential elections in 2014.[52] Several other Asian and African countries are reportedly interested in using them as well.[53]