This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tutorials:assemblers [2022/03/13 12:13] sm5por [Processor architecture] |
tutorials:assemblers [2023/09/23 22:22] sm5por [Instructions] |
||
---|---|---|---|
Line 41: | Line 41: | ||
|Exponent | | |Exponent | | ||
|Fraction | 27| 9--35 | |Fraction | 27| 9--35 | ||
+ | |||
+ | As 36 is divisible by three, in PDP-10 assembly language programming integer numbers are often written in octal (base 8) rather than hexadecimal (base 16) or decimal (base 10) notation. Exceptions here are bit positions, byte sizes, and software major/minor version numbers, which are written in decimal notation. When confusion is likely, decimal integers are suffixed with a period (" | ||
+ | |||
+ | ==== Memory addresses ==== | ||
+ | |||
+ | === Effective address calculation === | ||
+ | |||
+ | ^ Word ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^1^1^1^1^1^1^1^1^1^1^2^2^2^2^2^2^2^2^2^2^3^3^3^3^3^3^ | ||
+ | ^::: | ||
+ | |Address | ||||||||||||| | ||
+ | |||
+ | ^ | ||
+ | |I | ||
+ | |X | ||
+ | |Y | ||
+ | |||
+ | === Extended addressing === | ||
+ | |||
+ | === Byte pointers === | ||
^ Word ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^1^1^1^1^1^1^1^1^1^1^2^2^2^2^2^2^2^2^2^2^3^3^3^3^3^3^ | ^ Word ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^1^1^1^1^1^1^1^1^1^1^2^2^2^2^2^2^2^2^2^2^3^3^3^3^3^3^ | ||
^::: | ^::: | ||
|Byte pointer| | |Byte pointer| | ||
- | |Basic instruction| | ||
- | |I/O instruction| | ||
- | |PC word| Flags ||||||||||||| | ||
- | ^ | + | ^ |
- | |Position | + | |Position |
- | |Size | | + | |Size | |
- | |I | + | |
- | |X | + | |
- | |Y | + | |
- | |Basic opcode| | + | |
- | |I/O opcode | + | |
- | |AC | | + | |
- | |Flags | + | |
- | |PC | 18| | + | |
- | As 36 is divisible by three, in PDP-10 assembly language programming integer numbers are often written in octal (base 8) rather than hexadecimal (base 16) or decimal (base 10) notation. Exceptions here are bit positions, byte sizes, and software major/minor version numbers, which are written in decimal notation. When confusion is likely, decimal integers are suffixed with a period (" | + | ==== Instructions ==== |
- | ==== Effective address calculation ==== | + | ^ Word ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^1^1^1^1^1^1^1^1^1^1^2^2^2^2^2^2^2^2^2^2^3^3^3^3^3^3^ |
+ | ^::: | ||
+ | |PC word| Flags ||||||||||||| | ||
+ | |Basic instruction| | ||
+ | |I/O instruction| | ||
- | ==== Extended addressing ==== | + | ^ |
+ | |Flags | ||
+ | |PC | 18| | ||
+ | |Basic opcode| | ||
+ | |AC | | ||
+ | |Device | ||
+ | |I/O opcode | ||
- | ==== Processor status flags ==== | + | === Processor status flags === |
^ Bit ^ | ^ Bit ^ | ||
Line 80: | Line 98: | ||
| 12|No divide | | 12|No divide | ||
- | ==== Basic instruction set ==== | + | === Basic instruction set === |
- | ==== Input/ | + | === Input/ |
- | //**Note:** I/O instructions are not available when the processor is in user mode, but can be executed only by the operating system kernel in system (privileged) mode. They are thus of limited interest to regular application programmers under most operating systems.// | + | //**Note:** I/O instructions are not available when the processor is in user mode, but can be executed only by the operating system kernel in system (privileged) mode. They are also specific to the I/O hardware architecture of the each processor' |
==== Interrupt system ==== | ==== Interrupt system ==== | ||
Line 92: | Line 110: | ||
==== Processor models ==== | ==== Processor models ==== | ||
- | ^ Processor | + | ^ Processor |
- | ^::: ^::: | + | ^::: |
- | |DEC KA10 | + | |DEC KA10 | | 8--256 KW| 1| |
- | |DEC KI10 | + | |DEC KI10 | | ?--4096 KW| 1| |
- | |DEC KL10 A | + | |DEC KL10 A|DW, FP |
- | |DEC KL10 B | + | |DEC KL10 B|DW, FP, EA| 32--4096 KW| 32|4 DTE20, 8 RH20|PDP-11/?? |
- | |DEC KS10 |FlPt | + | |DEC KS10 |DW, FP | 128--512 KW| |
- | |XKL Toad | + | |SC-40 |DW, FP, EA| 4--64 MW| 4096|1 dual SX, 1 EX|SPARC |
+ | |XKL Toad-1|DW, FP, EA| ?--32 MW| 4096| | | ||
+ | |XKL Toad-2|DW, FP, EA| ?--256 MW| 4096| | ||
- | |FlPt | + | |DW |Double word operations |
- | |ExtA | + | |FP |
+ | |EA | ||
- | ==== Emulators | + | === Emulators === |
- | | + | ^ Emulator |
- | | + | ^::: ^::: ^::: |
+ | |KLH10|2.01|KL | ||
+ | |KLH10|2.01|KS | ||
+ | |KLH10|2.01|KS ITS|DW, FP | | ||
+ | |SIMH | |KL |DW, FP, EA| | ||
===== Operating system details ===== | ===== Operating system details ===== | ||
Line 126: | Line 151: | ||
===== Assemblers ===== | ===== Assemblers ===== | ||
- | * [[tutorials: | + | * [[tutorials: |
- | * [[tutorials: | + | * [[tutorials: |
- | * [[tutorials: | + | * [[tutorials: |
==== Inline assembly code in high-level languages ==== | ==== Inline assembly code in high-level languages ==== |