diff options
Diffstat (limited to 'miniany/doc/www.osdata.com_topic_language_asm_address.txt')
-rw-r--r-- | miniany/doc/www.osdata.com_topic_language_asm_address.txt | 781 |
1 files changed, 781 insertions, 0 deletions
diff --git a/miniany/doc/www.osdata.com_topic_language_asm_address.txt b/miniany/doc/www.osdata.com_topic_language_asm_address.txt new file mode 100644 index 0000000..ce2a78c --- /dev/null +++ b/miniany/doc/www.osdata.com_topic_language_asm_address.txt @@ -0,0 +1,781 @@ + [1][tsosdragon.jpg] + music + + [2]OSdata.com: assembly language + + OSdata.com + + Assembly Language + + address space and addressing modes + + summary + + This web page examines addressing modes in assembly language. + Specific examples of addressing modes from various processors are used + to illustrate the general nature of assembly language. + + free computer programming text book project + + If you like the idea of this project, + then please donate some money. + [3]more information on donating + + [4]Google + _______________________________ + Search + + See also [5]memory for a review of basics about memory. + + Now building a [6]For those with high speed connections, the very large + single file [7]summary is still on line. + * [8]table of contents for assembly language section + * [9]address space + * [10]address modes + + * [11]absolute address + * [12]immediate data + * [13]inherent address + * [14]register direct + * [15]register indirect + + * [16]address register indirect + * [17]address register indirect with postincrement + * [18]address register indirect with predecrement + * [19]address register indirect with preincrement + * [20]address register indirect with postdecrement + * [21]address register indirect with displacement + + [22]base register + + [23]register indirect with index register + * [24]address register indirect with index register + * [25]address register indirect with index register and displacement + * [26]absolute address with index register + + [27]memory indirect + * [28]memory indirect post indexed + * [29]memory indirect pre indexed + + [30]program counter relative + * [31]program counter indirect with displacement + * [32]program counter indirect with index and displacement + * [33]program counter memory indirect postindexed + * [34]program counter memory indirect preindexed + + [35]further reading: books on assembly language + + [36]related software + + [37]further reading: websites + + address space + + Address space is the maximum amount of memory that a processor can + address. Some processors use a multi-level addressing scheme, with main + memory divided into segments or pages and some or all instructions + mapping into the current segment(s) or page(s). + * MIX: 4000 words of storage + + From [38]memory. + + Main storage is also called memory or internal memory (to + distinguish from external memory, such as hard drives). + + RAM is Random Access Memory, and is the basic kind of internal + memory. RAM is called “random access” because the + processor or computer can access any location in memory (as + contrasted with sequential access devices, which must be accessed in + order). RAM has been made from reed relays, transistors, integrated + circuits, magnetic core, or anything that can hold and store binary + values (one/zero, plus/minus, open/close, positive/negative, + high/low, etc.). Most modern RAM is made from integrated circuits. + At one time the most common kind of memory in mainframes was + magnetic core, so many older programmers will refer to main memory + as core memory even when the RAM is made from more modern + technology. Static RAM is called static because it will continue to + hold and store information even when power is removed. Magnetic core + and reed relays are examples of static memory. Dynamic RAM is called + dynamic because it loses all data when power is removed. Transistors + and integrated circuits are examples of dynamic memory. It is + possible to have battery back up for devices that are normally + dynamic to turn them into static memory. + + ROM is Read Only Memory (it is also random access, but only for + reads). ROM is typically used to store thigns that will never change + for the life of the computer, such as low level portions of an + operating system. Some processors (or variations within processor + families) might have RAM and/or ROM built into the same chip as the + processor (normally used for processors used in standalone devices, + such as arcade video games, ATMs, microwave ovens, car ignition + systems, etc.). EPROM is Erasable Programmable Read Only Memory, a + special kind of ROM that can be erased and reprogrammed with + specialized equipment (but not by the processor it is connected to). + EPROMs allow makers of industrial devices (and other similar + equipment) to have the benefits of ROM, yet also allow for updating + or upgrading the software without having to buy new ROM and throw + out the old (the EPROMs are collected, erased and rewritten + centrally, then placed back into the machines). + + address modes + + The basic addressing modes are: register direct, moving date to or + from a specific register; register indirect, using a register as a + pointer to memory; program counter-based, using the program counter as + a reference point in memory; absolute, in which the memory addressis + contained in the instruction; and immediate, in which the data is + contained in the instruction. Some instructions will have an inherent + or implicit address (usually a specific register or the memory contents + pointed to by a specific register) that is implied by the instruction + without explicit declaration. + + One approach to processors places an emphasis on flexibility of + addressing modes. Some engineers and programmers believe that the real + power of a processor lies in its addressing modes. Most addressing + modes can be created by combining two or more basic addressing modes, + although building the combination in software will usually take more + time than if the combination addressing mode existed in hardware + (although there is a trade-off that slows down all operations to allow + for more complexity). + + In a purely othogonal instruction set, every addressing mode would + be available for every instruction. In practice, this isn’t the + case. + + Virtual memory, memory pages, and other hardware mapping methods + may be layered on top of the addressing modes. + + absolute address + + In absolute address mode, the effective address in memory is part + of the instruction. Some processors have full and short versions of + absolute addressing (with short versions only pointing to a limited + area in memory, normally starting at memory location zero). Unless + overridden by hardware for virtual memory mapping, programs that use + this address mode can not be moved in memory. + + From [39]memory. + + The most basic form of memory access is absolute addressing, in + which the program explicitely names the address that is going to be + used. An address is a numeric label for a specific location in + memory. The numbering system is usually in bytes and always starts + counting with zero. The first byte of physical memory is at address + 0, the second byte of physical memory is at address 1, the third + byte of physical memory is at address 2, etc. Some processors use + word addressing rather than byte addressing. The theoretical maximum + address is determined by the address size of a processor (a 16 bit + address space is limited to no more than 65536 memory locations, a + 32 bit address space is limited to approximately 4 GB of memory + locations). The actual maximum is limited to the amount of RAM (and + ROM) physically installed in the computer. + + A programmer assigns specific absolute addresses for data + structures and program routines. These absolute addresses might be + assigned arbitrarily or might have to match specific locations + expected by an operating system. In practice, the assembler or + complier determines the absolute addresses through an orderly + predictable assignment scheme (with the ability for the programmer + to override the compiler’s scheme to assign specific operating + system mandated addresses). + + This simple approach takes advantage of the fact that the + compiler or assembler can predict the exact absolute addresses of + every program instruction or routine and every data structure or + data element. For almost every processor, absolute addresses are the + fastest form of memory addressing. The use of absolute addresses + makes programs run faster and greatly simplifies the task of + compiling or assembling a program. + + Some hardware instructions or operations rely on fixed absolute + addresses. For example, when a processor is first turned on, where + does it start? Most processors have a specific address that is used + as the address of the first instruction run when the processer is + first powered on. Some processors provide a method for the start + address to be changed for future start-ups. Sometimes this is done + by storing the start address internally (with some method for + software or external hardware to change this value). For example, on + power up the Motorola 680x0, the processor loads the interrupt stack + pointer with the longword value located at address 000 hex, loads + the program counter with the longword value located at address 004 + hex, then starts execution at the frshly loaded program counter + location. Sometimes this is done by reading the start address from a + data line (or other external input) at power-up (and in this case, + there is usually fixed external hardware that always generates the + same pre-assigned start address). + + Another common example of hardware related absolute addressing + is the handling of traps, exceptions, and interrupts. A processor + often has specific memory addresses set aside for specific kinds of + traps, exceptions, and interrupts. Using a specific example, a + divide by zero exception on the Motorola 680x0 produces an exception + vector number 5, with the address of the exception handler being + fetched by the hardware from memory address 014 hex. + + Some simple microprocessor operating systems relied heavily on + absolute addressing. An example would be the [40]MS-DOS expectation + that the start of a program would always be located at absolute + memory address x100h (hexadecimal 100, or decimal 256). A typical + compiler or assembler directive for this would be the ORG directive + (for “origin”). + + The key disadvantage of absolute addressing is that multiple + programs clash with each other (expecting to use the same absolute + memory locations for different and competing purposes). + + * MIX: two byte absolute addresses if I field is zero + * Motorola 680x0, 68300: 16 bit short and 32 bit long versions; + syntax: xxx.W or xxx.L + + immediate data + + In immediate data address mode, the actual data is stored in the + instruction. The sizes allowed for immediate data vary by processor and + often by instruction (with some instructions having specific implied + sizes). + * Motorola 680x0, 68300: byte (8 bit), word (16 bit), and long word + (32 bit) versions; sign extended; syntax: #xxx + + inherent address + + Many instructions will have one or more inherent or implicit + addresses. These are addresses that are implied by the instruction + rather than explicitly stated. The two most common forms of inherent + address are either a specific register or a memory location designated + by the contents of a specific register. + + register direct + + In register direct address mode, the source and/or destination is a + register. + + Many processors distinguish between data and address register + operations (note, in some cases a general purpose register can act as + eeither an address or data register). + + In data register direct operations, flags are typically set or + cleared. Data that is smaller than the register may be sign extended or + zero filled to fill the entire register, or may be placed only in the + portion of the register necessary for the size of the data, leaving the + rest of the register unchanged. + * Motorola 680x0, 68300: 32 bit data registers; data register direct + operations set or clear flags; byte (8 bit), word (16 bit), and + long versions (32 bit), only the low order portion of a destination + register is changed; syntax: Dn + + In register to register (RR) operations, data is transferred from + one register to another register or an instruction uses a source and + destination register. + * IBM 360/370: two byte instructions with a source and a destination + register; 32 bit data registers; sets or clear flags; full word (32 + bit) transfers; syntax: source, destination (as just a hexadecimal + number or as a symbolic name) + * Motorola 680x0, 68300: instructions with a source and a destination + register; 32 bit data registers; sets or clears flags; byte (8 + bit), word (16 bit), and long versions (32 bit), only the low order + portion of a destination register is changed; syntax: Dn, Dn + + In address register direct operations, flags are not normally set + or cleared. The address is usually sign extended to the full address + size of the processor. + * Motorola 680x0, 68300: 32 bit address registers; address register + direct operations do not modify flags; word (16 bit) and long + versions (32 bit, 24 bits for the original 68000), word-size + operands are sign-extended to 32 bits; syntax: An + + register indirect + + In register indirect address mode, the contents of the designated + register are used as a pointer to memory. Variations of register + indirect include the use of post- or pre- increment, post- or pre- + decrement, and displacements. + + In address register indirect operations, the designated register is + used as a pointer to memory. + * Motorola 680x0, 68300: syntax: (An) + + In address register indirect with postincrement operations, the + designated register is used as a pointer to memory, and then the + register is incremented by the size of the operation. This is useful + for a loop where the same or similar operations are performed on + consecutive locations in memory. This address mode can be combined with + a complimentary predecrement mode for stack and queue operations. + * Motorola 680x0, 68300: syntax: (An)+ + + In address register indirect with predecrement operations, the + designated register is decremented by the size of the operations, and + then the designated register is used as a pointer to memory. This is + useful for a loop where the same or similar operations are performed on + consecutive locations in memory. This address mode can be combined with + a complimentary postincrement mode for stack and queue operations. + * Motorola 680x0, 68300: syntax: -(An) + + In address register indirect with preincrement operations, the + designated register is incremented by the size of the operations, and + then the designated register is used as a pointer to memory. This is + useful for a loop where the same or similar operations are performed on + consecutive locations in memory. This address mode can be combined with + a complimentary postdecrement mode for stack and queue operations. + + In address register indirect with postdecrement operations, the + designated register is used as a pointer to memory, and then the + register is decremented by the size of the operation. This is useful + for a loop where the same or similar operations are performed on + consecutive locations in memory. This address mode can be combined with + a complimentary preincrement mode for stack and queue operations. + + In address register indirect with displacement operations, the + contents of the designated register are modified by adding or + subtracting a dispacement integer, then used as a pointer to memory. + The displacement integer is stored in the instruction, and if shorter + than the length of a the processor’s address space (the normal + case), sign-extended before addition (or subtraction). + * Motorola 680x0, 68300: 16 bit displacement integers, sign-extended + to 32 bits; syntax: d(An) + + base registers + + From [41]memory. + + Base pointers (sometimes called segment pointers or page + pointers) are special hardware registers that point to the start (or + base) of a particular page or segment of memory. Programs can then + use an absolute address within a page and either explicitly add the + absolute address to the contents of a base pointer or rely on the + hardware to add the two together to form the actual effective + address of the memory access. Which method was used would depend on + the processor capabilities and the operatign system design. Hiding + the base pointer from the application program both made the program + easier to compile and allowed for the operating system to implement + program isolation, data/code isolation, protected memory, and other + sophisticated services. + + As an example, the Intel 80x86 processor has a code segment + pointer, a data segment pointer, a stack segment pointer, and an + extra segment pointer. When a program is loaded into memory, an + operating system running on the Intel 80x86 sets the segment + pointers with the beginning of the pages assigned for each purpose + for that particular program. If a program is swapped out, when it + gets swapped back in, the operating system sets the segment pointers + to the new memory locations for each segment. The program continues + to run, without being aware that it has been moved in memory. + + register indirect with index register + + In a register indirect with index register mode, two registers are + added together to form the effective address of a pointer to memory. + These are sometimes called the base register and index register. Many + processors will have limits on which registers can be used for the base + register and/or which registers can be used for the index register. + + In address/base register indirect with index register operations, + the contents of the index register are added to the contents of the + base address register to form an effective address in memory. Some + processors allow for designating that less than the full size of the + index register be used in the computation, with the designated low + order portion of the index register being sign-extended for the + effective address computation. Some processors require that a + designated low order portion of the index register be used in the + computation, with the designated low order portion of the index + register being sign-extended for the effective address computation. + + In address/base register indirect with index register and + displacement operations, the contents of the index register are added + to the contents of the base address register and then an integer + displacement is added or subtracted to form an effective address in + memory. Some processors allow for designating that less than the full + size of the index register be used in the computation, with the + designated low order portion of the index register being sign-extended + for the effective address computation. Some processors require that a + designated low order portion of the index register be used in the + computation, with the designated low order portion of the index + register being sign-extended for the effective address computation. The + integer displacement is stored in the instruction, and if shorter than + the length of a the processor’s address space (the normal case), + sign-extended before addition (or subtraction). + * Motorola 680x0, 68300: 8 bit, 16 bit, or 32 bit displacement + integer; index register component can be word (16 bit) or long (32 + bit) and can have a scale factor of 0, 1, 2, 4, or 8; syntax: + d(An,Xn.s) + + absolute address with index register + + In absolute address with index register operations, the contents of + an index register are added to an absolute address to form an effective + address in memory. + * MIX: two byte absolute addresses with contents of one of five index + registers + + memory indirect + + In memory indirect address mode, a location in memory contains a + value that is used as a pointer (with or without additional effective + address computations) to another location in memory. + + In memory indirect postindexed operations, the processor calculates + an intermediate memory address using a base register and a base + displacement. The processor accesses the designated memory location, + and adds the contents of the index register and an outer displacement + to the memory value to yield the effective address. If either + displacement and/or the index register is shorter than the length of a + the processor’s address space (the normal case), each is + sign-extended before addition (or subtraction). Base and outer + displacements are stored in the instruction. + * Motorola 680x0, 68300: 8 bit, 16 bit, or 32 bit base and outer + displacement integers; index register component can be word (16 + bit) or long (32 bit) and can have a scale factor of 0, 1, 2, 4, or + 8; syntax: ([bAn], Xn.s, od) + + In memory indirect preindexed operations, the processor calculates + an intermediate memory address using a base register, a base + displacement, and an index register. The processor accesses the + designated memory location, and adds an outer displacement to the + memory value to yield the effective address. If either displacement + and/or the index register is shorter than the length of a the + processor’s address space (the normal case), each is sign-extended + before addition (or subtraction). Base and outer displacements are + stored in the instruction. + * Motorola 680x0, 68300: 8 bit, 16 bit, or 32 bit base and outer + displacement integers; index register component can be word (16 + bit) or long (32 bit) and can have a scale factor of 0, 1, 2, 4, or + 8; syntax: ([bAn, Xn.s], od) + + program counter relative + + In program counter indirect addressing, the program counter is used + as a reference for the effective address computation. This is most + commonly used for short branching relative to the current program + counter, allowing for object code that can be placed anywhere in + memory. + + From [42]memory. + + One approach for making programs relocatable is program counter + relative addressing. Instead of branching using absolute addresses, + branches (including subroutine calls, jumps, and other kinds of + branching) were based on a relative distance from the current + program counter (which points to the address of the currently + executing instruction). With PC relative addreses, the program can + be loaded anywhere in memory and still work correctly. The location + of routines, subroutines, functions, and constant data can be + determined by the positive or negative distance from the current + instruction. + + Program counter relative addressing can also be used for + determining the address of variables, but then data and code get + mixed in the same page or segment. At a minimum, mixing data and + code in the same segment is bad programming practice, and in most + cases it clashes with more sophisticated hardware systems (such as + protected memory). + + In program counter indirect with displacement operations, the + effective address is the sum of the address in the program counter and + the displacement integer stored in the instruction. If the displacement + integer is shorter than the length of a the processor’s address + space (the normal case), it is sign-extended before addition (or + subtraction). + * Motorola 680x0, 68300: 16 bit displacement integer; syntax: dPC + + In program counter indirect with index and displacement operations, + the effective address is the sum of the address in the program counter, + the contents of the index register, and the displacement integer stored + in the instruction. If the displacement integer or designated portion + of the index register is shorter than the length of a the + processor’s address space (the normal case), each is sign-extended + before addition (or subtraction). + * Motorola 680x0, 68300: 8 bit, 16 bit, or 32 bit displacement + integer; index register component can be word (16 bit) or long (32 + bit) and can have a scale factor of 0, 1, 2, 4, or 8; syntax: + dPC,Xn + + In program counter memory indirect postindexed operations, the + processor calculates an intermediate indirect memory address by adding + a base displacement to the contents of the program counter. The value + accessed at this memory location is added to the scaled contents of the + index register and the outer displacement to yield the effective + address. If either the base or outer displacement integer or designated + portion of the index register is shorter than the length of a the + processor’s address space (the normal case), each is sign-extended + before addition (or subtraction). + * Motorola 680x0, 68300: 8 bit, 16 bit, or 32 bit base and outer + displacement integers; index register component can be word (16 + bit) or long (32 bit) and can have a scale factor of 0, 1, 2, 4, or + 8; syntax: ([dPC],Xn.s,od) + + In program counter memory indirect preindexed operations, the + processor calculates an intermediate indirect memory address by adding + a base displacement and scaled contents of an index register to the + contents of the program counter. The value accessed at this memory + location is added to the outer displacement to yield the effective + address. If either the base or outer displacement integer or designated + portion of the index register is shorter than the length of a the + processor’s address space (the normal case), each is sign-extended + before addition (or subtraction). + * Motorola 680x0, 68300: 8 bit, 16 bit, or 32 bit base and outer + displacement integers; index register component can be word (16 + bit) or long (32 bit) and can have a scale factor of 0, 1, 2, 4, or + 8; syntax: ([dPC,Xn.s],od) + + Now building a [43]For those with high speed connections, the very + large single file [44]summary is still on line. + + free music player coding example + + Programming example: I am making heavily documented and explained + open source PHP/MySQL code for a method to play music for free — + almost any song, no subscription fees, no download costs, no + advertisements, all completely legal. This is done by building a + front-end to YouTube (which checks the copyright permissions for you). + + View music player in action: [45]www.musicinpublic.com/. + + Create your own copy from the [46]original source code/ (presented + for learning programming). Includes how to run this from your own + computer if you don’t have a web site. + + OSdata.com is used in more than 300 colleges and universities around the + world + + [47]Read details here. + Some or all of the material on this web page appears in the + [48]free downloadable college text book on computer programming. + __________________________________________________________________ + + [49]return to table of contents + [50]free downloadable college text book + + [51]view text book + HTML file + + Because I no longer have the computer and software to make PDFs, the + book is available as an HTML file, which you can convert into a PDF. + __________________________________________________________________ + + [52]Tweets by @osdata + + A web site on dozens of operating systems simply can’t be + maintained by one person. This is a cooperative effort. If you spot an + error in fact, grammar, syntax, or spelling, or a broken link, or have + additional information, commentary, or constructive criticism, please + e-mail [53]Milo. If you have any extra copies of docs, manuals, or + other materials that can assist in accuracy and completeness, please + send them to Milo, PO Box 1361, Tustin, CA, USA, 92781. + + [54]Click here for our privacy policy. + __________________________________________________________________ + + [55]previous page [56]next page + [57]previous page [58]next page + + [59]home page + + two levels up + + [60]special topics + + one level up + + * [61]programming languages + * [62]Ada + * [63]ALGOL + * [64]C + * [65]C++ + * [66]COBOL + * [67]FORTRAN + * [68]Java + * [69]Pascal + * [70]Perl + * [71]PL/I + + peer level + + * [72]intro to assembly language + * [73]data representation and number systems + * [74]registers + * [75]executable instructions + * [76]data and address movement + * [77]integer arithmetic + * [78]floating arithmetic + * [79]binary coded decimal + * [80]advanced math + * [81]data conversion + * [82]logical operations + * [83]shift and rotate + * [84]bit and bit field manipulation + * [85]character and string + * [86]table operations + * [87]high level language support + * [88]program control and condition codes + * [89]input/output + * [90]system control + * [91]coprocessor and multiprocessor + * [92]trap generating + + free computer programming text book project + + Building a free downloadable text book on computer programming for + university, college, community college, and high school classes in + computer programming. + + If you like the idea of this project, + then please donate some money. + send donations to: + Milo + PO Box 1361 + Tustin, California 92781 + + Supporting the entire project: + + If you have a business or organization that can support the entire + cost of this project, please contact [93]Pr Ntr Kmt (my church) + + [94]more information on donating + Some or all of the material on this web page appears in the + [95]free downloadable college text book on computer programming. + __________________________________________________________________ + + I do the news as an unpaid volunteer for [96]KOCI 101.5 FM, Newport + Beach/Costa Mesa (also available on the web) + __________________________________________________________________ + + [97]Google + _______________________________ + Search + + Made with Macintosh + + This web site handcrafted on [98]Macintosh [mac.gif] computers + using [99]Tom Bender’s Tex-Edit Plus [texedit.gif] and served + using [100]FreeBSD [freebsdm.gif] . + + [101]Viewable With Any Browser + __________________________________________________________________ + + Names and logos of various OSs are trademarks of their respective + owners. + + Copyright © 2000, 2001 [102]Milo + + Created: February 14, 2001 (from asm.htm) + + Last Updated: March 17, 2001 + __________________________________________________________________ + + [103]return to table of contents + [104]free downloadable college text book + + [105]previous page [106]next page + [107]previous page [108]next page + + Quantcast + +References + + 1. http://www.ThisSideofSanity.com/tshirt/osdata.html + 2. https://www.osdata.com/index.htm + 3. https://www.osdata.com/pledge.html + 4. http://www.google.com/ + 5. https://www.osdata.com/system/physical/memory.htm + 6. https://www.osdata.com/topic/milo/milo.html>freeemulatorandassemblylanguageproigramminglessons</a>.</p><palign= + 7. https://www.osdata.com/topic/language/asm.htm + 8. https://www.osdata.com/topic/language/asm/asmintro.htm + 9. https://www.osdata.com/topic/language/asm/address.htm#addressspace + 10. https://www.osdata.com/topic/language/asm/address.htm#addressmodes + 11. https://www.osdata.com/topic/language/asm/address.htm#absoluteaddress + 12. https://www.osdata.com/topic/language/asm/address.htm#immediatedata + 13. https://www.osdata.com/topic/language/asm/address.htm#inherent + 14. https://www.osdata.com/topic/language/asm/address.htm#registerdirect + 15. https://www.osdata.com/topic/language/asm/address.htm#registerindirect + 16. https://www.osdata.com/topic/language/asm/address.htm#addressregisterindirect + 17. https://www.osdata.com/topic/language/asm/address.htm#addressregisterindirectwithpostincrement + 18. https://www.osdata.com/topic/language/asm/address.htm#addressregisterindirectwithpredecrement + 19. https://www.osdata.com/topic/language/asm/address.htm#addressregisterindirectwithpreincrement + 20. https://www.osdata.com/topic/language/asm/address.htm#addressregisterindirectwithpostdecrement + 21. https://www.osdata.com/topic/language/asm/address.htm#addressregisterindirectwithdisplacement + 22. https://www.osdata.com/topic/language/asm/address.htm#baseregister + 23. https://www.osdata.com/topic/language/asm/address.htm#registerindirectwithindex + 24. https://www.osdata.com/topic/language/asm/address.htm#addressregisterindirectwithindexregister + 25. https://www.osdata.com/topic/language/asm/address.htm#addressregisterindirectwithindexregisteranddisplacement + 26. https://www.osdata.com/topic/language/asm/address.htm#absolutewithindex + 27. https://www.osdata.com/topic/language/asm/address.htm#memoryindirect + 28. https://www.osdata.com/topic/language/asm/address.htm#memoryindirectpostindexed + 29. https://www.osdata.com/topic/language/asm/address.htm#memoryindirectpreindexed + 30. https://www.osdata.com/topic/language/asm/address.htm#programcounterindirect + 31. https://www.osdata.com/topic/language/asm/address.htm#programcounterindirectwithdisplacement + 32. https://www.osdata.com/topic/language/asm/address.htm#programcounterindirectwithindexanddisplacement + 33. https://www.osdata.com/topic/language/asm/address.htm#programcountermemoryindirectpostindexed + 34. https://www.osdata.com/topic/language/asm/address.htm#programcountermemoryindirectpreindexed + 35. https://www.osdata.com/topic/language/asm/asmintro.htm#books + 36. https://www.osdata.com/topic/language/asm/asmintro.htm#relatedsoftware + 37. https://www.osdata.com/topic/language/asm/asmintro.htm#websites + 38. https://www.osdata.com/system/physical/memory.htm + 39. https://www.osdata.com/system/physical/memory.htm + 40. https://www.osdata.com/topic/oses/msdos.htm + 41. https://www.osdata.com/system/physical/memory.htm + 42. https://www.osdata.com/system/physical/memory.htm + 43. https://www.osdata.com/topic/milo/milo.html>freeemulatorandassemblylanguageproigramminglessons</a>.</p><palign= + 44. https://www.osdata.com/topic/language/asm.htm + 45. http://www.musicinpublic.com/ + 46. http://www.osdata.com/music/musicplayer.html + 47. http://www.OSdata.com/traffic.htm + 48. https://www.osdata.com/book.html + 49. https://www.osdata.com/book.html#toc + 50. https://www.osdata.com/book.html + 51. http://www.osdata.com/progbook/programmingindex.html + 52. https://twitter.com/osdata + 53. https://www.osdata.com/email.htm + 54. https://www.osdata.com/privacy.htm + 55. https://www.osdata.com/topic/language/asm/compositeregister.htm + 56. https://www.osdata.com/topic/language/asm/datamove.htm + 57. https://www.osdata.com/topic/language/asm/compositeregister.htm + 58. https://www.osdata.com/topic/language/asm/datamove.htm + 59. https://www.osdata.com/index.htm + 60. https://www.osdata.com/topic/topic.htm + 61. https://www.osdata.com/topic/language/program.htm + 62. https://www.osdata.com/topic/language/ada.htm + 63. https://www.osdata.com/topic/language/algol.htm + 64. https://www.osdata.com/topic/language/c.htm + 65. https://www.osdata.com/topic/language/cplus.htm + 66. https://www.osdata.com/topic/language/cobol.htm + 67. https://www.osdata.com/topic/language/fortran.htm + 68. https://www.osdata.com/topic/language/java.htm + 69. https://www.osdata.com/topic/language/pascal.htm + 70. https://www.osdata.com/topic/language/perl.htm + 71. https://www.osdata.com/topic/language/pli.htm + 72. https://www.osdata.com/topic/language/asm/asmintro.htm + 73. https://www.osdata.com/topic/language/asm/datarep.htm + 74. https://www.osdata.com/topic/language/asm/register.htm + 75. https://www.osdata.com/topic/language/asm/machcode.htm + 76. https://www.osdata.com/topic/language/asm/datamove.htm + 77. https://www.osdata.com/topic/language/asm/intarith.htm + 78. https://www.osdata.com/topic/language/asm/floating.htm + 79. https://www.osdata.com/topic/language/asm/bcdarith.htm + 80. https://www.osdata.com/topic/language/asm/advmath.htm + 81. https://www.osdata.com/topic/language/asm/convert.htm + 82. https://www.osdata.com/topic/language/asm/logicop.htm + 83. https://www.osdata.com/topic/language/asm/shiftrot.htm + 84. https://www.osdata.com/topic/language/asm/bitstr.htm + 85. https://www.osdata.com/topic/language/asm/charstr.htm + 86. https://www.osdata.com/topic/language/asm/table.htm + 87. https://www.osdata.com/topic/language/asm/highlvl.htm + 88. https://www.osdata.com/topic/language/asm/progcont.htm + 89. https://www.osdata.com/topic/language/asm/ioinst.htm + 90. https://www.osdata.com/topic/language/asm/syscont.htm + 91. https://www.osdata.com/topic/language/asm/coproc.htm + 92. https://www.osdata.com/topic/language/asm/trapgen.htm + 93. http://www.prntrkmt.org/ + 94. https://www.osdata.com/pledge.html + 95. https://www.osdata.com/book.html + 96. http://www.kociradio.com/ + 97. http://www.google.com/ + 98. https://www.osdata.com/kind/mac.htm + 99. http://members.aol.com/tombb/index.html + 100. https://www.osdata.com/oses/freebsd.htm + 101. http://www.anybrowser.org/campaign/ + 102. https://www.osdata.com/email.htm + 103. https://www.osdata.com/book.html#toc + 104. https://www.osdata.com/book.html + 105. https://www.osdata.com/topic/language/asm/compositeregister.htm + 106. https://www.osdata.com/topic/language/asm/datamove.htm + 107. https://www.osdata.com/topic/language/asm/compositeregister.htm + 108. https://www.osdata.com/topic/language/asm/datamove.htm |