In the flag register of Z80, 8080, 8085, and 8086 processors, what is the purpose of bits 1, 3, 5, which are documented as "reserved" or "undefined"?
What is the purpose of the reserved/undefined bit in the flag register?
2.5k Views Asked by Joseph At
1
There are 1 best solutions below
Related Questions in CPU-ARCHITECTURE
- What is causing the store latency in this program?
- what's the difference between "nn layout" and "nt layout"
- Will a processor with such a defect work?
- How do i find number of Cycles of a processor?
- Why does LLVM-MCA measure an execution stall?
- Can out-of-order execution of CPU affect the order of new operator in C++?
- running SPEC in gem5 using the SimPoint methodology
- Why don't x86-64 (or other architectures) implement division by 10?
- warn: MOVNTDQ: Ignoring non-temporal hint, modeling as cacheable!, While simulating x86 with spec2006 benchamrks I am getting stuck in warn message
- arithmetic intensity of zgemv versus dgemv/sgemv?
- What is the microcode scoreboard?
- Why don't x86/ARM CPU just stop speculation for indirect branches when hardware prediction is not available?
- Question about the behaviour of registers
- How to increase throughput of random memory reads/writes on multi-GB buffers?
- RISVC Single Cycle Processor Data Path and Testbench
Related Questions in X86-16
- DOSbox automatically freezes and crashes without any prompt warnings
- x86 Wrote a boot loader that prints a message to the screen but the characters are completely different to what I expected
- running an imf file using dosbox in parallel to a game
- Input and output of signed single-digit decimal numbers
- Move string to end of file assembly
- I search a unit to solve the turbo pascal 255 string limit
- Unknown error in assembly language code, the result of multiplication operation is always random symbol
- Assembly language adding two numbers code error issue
- kernel.asm:60: error: comma, colon, decorator or end of line expected after operand
- Loading disk sector into memory (AT&T)
- Issue with Displaying Random Characters and Sound Playback Interruption in Assembly Code
- x86 BIOS stage 1 boot code halting after loop from interrupt
- Reverse engineer LCD Protocol used in MPC2000XL
- TASM error when i tried to compile this code
- "Symbol not defined : @STACK " error in ASM code for 8086. Compiled using DOSBOX ,MASM
Related Questions in Z80
- Replace var in Sjasm macro
- Does Binary literal in Turbo Pascal 3.01A for CP/M-80
- Change text color in Z80 assembly for Amstrad CPC 464
- sdcc code location - how to get file without padding when using start address greater than zero
- I can't read the LY register of the gameboy
- SDCC assign memory address to pointer, no effect
- How to read elements from a DEFB sequentially in Z80 Assembly language and then use the value retrieved at each iteration
- Z80 Assembly for ZX Spectrum how to use a variable as PRINT AT coordinates
- Porting from Santaka ZX Spectrum clone code to Z80 to compile a Santaka game - how to translate to this dialect?
- Trouble understanding the Z80 book and flags
- Which registers are callee-save in routines called via USR function in MSX BASIC?
- Should I sacrifice readability for speed using inline code vs function calls in C# NET4?
- Z80 16-Bit Load Instruction and Endianness
- Unexpected garbage pixels in logo demo for Amstrad CPC emulator
- Load value of register in 2 by 2 bytes to another register
Related Questions in 8085
- Label "labelname" is not defined
- How can I multiply two one byte hex numbers using rotation in mp8085 (dyna one)?
- How to write clean and efficient Intel 8085 ASM programs?
- MOV r, M instruction in 8085 microprocessor
- How many machine cycles does the HLT instruction require on the intel 8085?
- How do I need to change assembly code that it is going to work correctly?
- How should I change the code using the 8085 microprocessor to execute and read what is in quotes?
- How to put label with 8085 microprocessor in assembly language?
- How can I run assembly code by bypassing the operating system?
- Assembly problem adding unknown value into A
- How were programs written in 8085 assembly dumped into memory
- 'Label' in assembly language - opcode
- Why does CMP L and CMP M instructions in Microprocessor 8085 have same opcode BD?
- Current state of Stack Pointer in 8085
- 8085 microprocessor connection of CPU data bus with RAM data bus
Related Questions in INTEL-8080
- Assembler i8080 print result in decimal format
- INTEL 8008/8080/8085 subtraction
- LHLD doesn't assign a value to register HL
- Unexpected Result in Intel 8080 Test ROM TST8080.ASM
- Intel 8080 How to convert decimal number to binary and print it
- What do these set of instructions do?
- How should assemblers distinguish between symbol and all-alpha hex value?
- CALL MULTIPLY Function in Assembler
- How are the carry and aux carry calculated for bitwise operations in the 8080
- Clock cycles in a single 8080 instruction
- What does addr means in the opcode 0x3a LDA addr intel 8080
- DCX and Carry flag
- Plain subtraction operation with 8 bits
- How do I efficiently do signed comparisons on the 8080?
- Could anything with a Z80 processor run Gameboy games?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
These bits are unused; that is, no instruction explicitly sets them to any value. The designers decided that 5/6 flags was enough, and they just left the remaining bits of the flags register unused.
They are documented as being "undefined" because it is not possible to know in advance which value will they have after any of the instructions are executed—the processor design is simpler that way, as opposed to setting them explicitly to 0 or 1.
Now, strictly speaking, and for the Z80 at least, these flags do actually get a predictable value—after all, a processor will always produce the same output and change to internal state given the same combination of input and previous internal state. For example, this document about undocumented Z80 instructions says the following about CPI:
The point, however, is that this behavior is unintentional—just a side effect—and not guaranteed to be present in future iterations of the processors. That's why they are documented as being just "undefined", as in, "they aren't useful to you so just ignore them".
Note that while on Z80 all bits of the
Fregister can be set to any state, on i8080 bits 3 and 5 (that correspond to the undocumented Z80 flags) always read to be zero and bit 1 (that corresponds to Z80's N flag) always reads to be one.