рднрд╛рдЧреЛрдВ
рдПрдХ рдФрд░
рджреЛ ред
8080 рдкреНрд░реЛрд╕реЗрд╕рд░ рдПрдореБрд▓реЗрдЯрд░
рдПрдореБрд▓реЗрдЯрд░ рдЦреЛрд▓
8080 рдкреНрд░реЛрд╕реЗрд╕рд░ рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдм рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬреНрдЮрд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдЕрдкрдирд╛ рдХреЛрдб рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдкреНрд░рддреНрдпреЗрдХ рдУрдкрдХреЛрдб рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рд╣рдЬ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВредрдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдореЗрдореЛрд░реА рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдКрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрд╕реЗрдореНрдмрд▓рд░ рд▓рд┐рдЦрддреЗ рд╕рдордп рдореЗрд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рд╣реЛрдВрдЧреЗред рдореЗрдореЛрд░реА рдмрдлрд░ рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рдЬрдЧрд╣ рд╣реЛрдЧреА, рдЬреЛ рд░реИрдо рд╣реЛрдЧреАред
typedef struct ConditionCodes { uint8_t z:1; uint8_t s:1; uint8_t p:1; uint8_t cy:1; uint8_t ac:1; uint8_t pad:3; } ConditionCodes; typedef struct State8080 { uint8_t a; uint8_t b; uint8_t c; uint8_t d; uint8_t e; uint8_t h; uint8_t l; uint16_t sp; uint16_t pc; uint8_t *memory; struct ConditionCodes cc; uint8_t int_enable; } State8080;
рдЕрдм рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдПрдВ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
void UnimplementedInstruction(State8080* state) {
рдЖрдЗрдП рдХреБрдЫ рдСрдкрдХреЛрдб рд▓рд╛рдЧреВ рдХрд░реЗрдВред
void Emulate8080Op(State8080* state) { unsigned char *opcode = &state->memory[state->pc]; switch(*opcode) { case 0x00: break;
рд╡рд╣рд╛рдВ рддреБрдо рдЬрд╛рдУред рдкреНрд░рддреНрдпреЗрдХ рдУрдкрдХреЛрдб рдХреЗ рд▓рд┐рдП, рд╣рдо рд░рд╛рдЬреНрдп рдФрд░ рдореЗрдореЛрд░реА рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ 8080 рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб рдХрд░реЗрдЧрд╛ред
8080 рдореЗрдВ рд▓рдЧрднрдЧ 7 рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ:
- рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░
- рдЕрдВрдХ-рд╕рдВрдмрдВрдзреА
- рдмреВрд▓рд┐рдпрди
- рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ
- рдЕрдиреЗрдХрддрд╛
- рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ
- рд╡рд┐рд╢реЗрд╖
рдЖрдЗрдП рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рджреЗрдЦреЗрдВред
рдЕрдВрдХрдЧрдгрд┐рдд рд╕рдореВрд╣
рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдирд┐рд░реНрджреЗрд╢ 8080 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ 256 рдСрдкрдХреЛрдб рдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬреЛрдбрд╝ рдФрд░ рдШрдЯрд╛рд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдирд┐рд░реНрджреЗрд╢ рд░рдЬрд┐рд╕реНрдЯрд░ рдП рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдП рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ (рд░рдЬрд┐рд╕реНрдЯрд░ рдП рдХреЛ рд╕рдВрдЪрд╛рдпрдХ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдпреЗ рдЖрджреЗрд╢ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреЛрдб рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рд╛рдЬреНрдп рдХреЛрдб (рдЭрдВрдбреЗ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕рднреА рдХрдорд╛рдВрдб рдлреНрд▓реИрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рднреА рдЯреАрдореЗрдВ рдЭрдВрдбреЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдЭрдВрдбреЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВред
рдЭрдВрдбреЗ 8080
8080 рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдЭрдВрдбреЗ рдХреЛ Z, S, P, CY рдФрд░ AC рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдкрд░рд┐рдгрд╛рдо рд╢реВрдиреНрдп рд╣реЛрдиреЗ рдкрд░ Z (рд╢реВрдиреНрдп, рд╢реВрдиреНрдп) рдорд╛рди 1 рд▓реЗрддрд╛ рд╣реИ
- S (рд╕рд╛рдЗрди) 1 рдорд╛рди рд▓реЗрддрд╛ рд╣реИ рдЬрдм рдЧрдгрд┐рддреАрдп рдХрдорд╛рдВрдб рдХрд╛ рдмрд┐рдЯ 7 (рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ, MSB) рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдкреА (рд╕рдорддрд╛, рд╕рдорддрд╛) рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдпрд╣ рд╡рд┐рд╖рдо рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
- CY (рдХреИрд░реА) рдХрд╛ рдорд╛рди 1 рддрдм рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдХрдорд╛рдВрдб рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрдЪреНрдЪ рдСрд░реНрдбрд░ рдмрд┐рдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдпрд╛ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдПрд╕реА (рдСрдХреНрд╕рд┐рд▓рд░реА рдХреИрд░реА) рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдмреАрд╕реАрдбреА (рдмрд╛рдЗрдирд░реА рдХреЛрдбреЗрдб рджрд╢рдорд▓рд╡) рдЧрдгрд┐рдд рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдореИрдиреБрдЕрд▓ рджреЗрдЦреЗрдВ, рдЕрдВрддрд░рд┐рдХреНрд╖ рдЖрдХреНрд░рдордгрдХрд╛рд░рд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд╢рд░реНрдд рд╢рд╛рдЦрд╛ рдЖрджреЗрд╢реЛрдВ рдореЗрдВ рд░рд╛рдЬреНрдп рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЗрдб рдЬреЗрдб рдХреЗрд╡рд▓ рдЭрдВрдбреЗ рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рд╢рд╛рдЦрд╛ рдХрд░рддрд╛ рд╣реИред
рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рддреАрди рд░реВрдк рд╣реИрдВ: рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рддрддреНрдХрд╛рд▓ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдФрд░ рд╕реНрдореГрддрд┐ рдХреЗ рд▓рд┐рдПред рдЖрдЗрдП рдЙрдирдХреЗ рд░реВрдкреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд░рд╛рдЬреНрдп рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рд╕рд╣рд╛рдпрдХ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдзреНрд╡рдЬ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред)
рдкрдВрдЬреАрдХрд░рдг рдлреЙрд░реНрдо
рдпрд╣рд╛рдВ рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рджреЛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ; рдкрд╣рд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ, рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд░реВрдк рдЬреЛ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
case 0x80:
рдореИрдВ 16-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде 8-рдмрд┐рдЯ рдЧрдгрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рд╕реЗ рдЙрди рдорд╛рдорд▓реЛрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЧрдгрдирд╛ рдПрдХ рдХреИрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИред
рддрддреНрдХрд╛рд▓ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╛рд░реНрдо
рддрддреНрдХрд╛рд▓ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдлреЙрд░реНрдо рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рдж рдмрд╛рдЗрдЯ рдЬреЛрдбрд╝рд╛ рдХрд╛ рд╕реНрд░реЛрдд рд╣реИред рдЪреВрдБрдХрд┐ "opcode" рдореЗрдореЛрд░реА рдореЗрдВ рдХрд░рдВрдЯ рдХрдорд╛рдВрдб рдХрд╛ рдкреЙрдЗрдВрдЯрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП opcode [1] рддреБрд░рдВрдд рдЕрдЧрд▓реА рдмрд╛рдЗрдЯ рд╣реЛрдЧреАред
case 0xC6:
рд╕реНрдореГрддрд┐ рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░
рдореЗрдореЛрд░реА рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рдмрд╛рдЗрдЯ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдПрдЪрдПрд▓ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдкрддрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
case 0x86:
рдиреЛрдЯ
рд╢реЗрд╖ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд:
- рд╕рдВрджрд░реНрдн рдореИрдиреБрдЕрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреИрд░реА (рдПрдбреАрд╕реА, рдПрд╕реАрдЖрдИ, рдПрд╕рдмреАрдмреА, рдПрд╕рдпреВрдЖрдИ) рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рд╣рдо рдЧрдгрдирд╛ рдореЗрдВ рдХреИрд░реА рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
- INX рдФрд░ DCX рд░рдЬрд┐рд╕реНрдЯрд░ рдЬреЛрдбрд╝реЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ; рдпреЗ рдХрдорд╛рдВрдб рдлреНрд▓реИрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
- DAD рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХрд╛ рдПрдХ рдФрд░ рдХрдорд╛рдВрдб рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдХреИрд░реА рдлреНрд▓реИрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ
- INR рдФрд░ DCR рдХреИрд░реА рдлрд╝реНрд▓реИрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
рд╢рд╛рдЦрд╛ рд╕рдореВрд╣
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд░рд╛рдЬреНрдп рдХреЛрдб рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд╛рдж, рд╢рд╛рдЦрд╛ рд╕рдореВрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рд╢рд╛рдЦрд╛рдПрдВ рд╣реИрдВ - рд╕рдВрдХреНрд░рдордг (JMP) рдФрд░ рдХреЙрд▓ (CALL)ред JMP рдмрд╕ рдкреАрд╕реА рдХреЛ рдЬрдВрдк рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдХреЗ рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реВрдЯреАрди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕реНрдЯреИрдХ рдкрд░ рд╡рд╛рдкрд╕реА рдкрддрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкреАрд╕реА рдХреЛ рдЧрдВрддрд╡реНрдп рдХрд╛ рдкрддрд╛ рдмрддрд╛рддрд╛ рд╣реИред рдЖрд░рдИрдЯреА рдХреЙрд▓ рд╕реЗ рд▓реМрдЯрддрд╛ рд╣реИ, рд╕реНрдЯреИрдХ рд╕реЗ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреАрд╕реА рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИред
рдЬреЗрдПрдордкреА рдФрд░ рдХреЙрд▓ рджреЛрдиреЛрдВ рд╣реА рдкреВрд░реНрдг рдкрддреЗ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдУрдкрдХреЛрдб рдХреЗ рдмрд╛рдж рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рд╣реЛрддреЗ рд╣реИрдВред
рдЬреЗрдПрдордкреА
JMP рдХрдорд╛рдВрдб рд╢рд╛рдЦрд╛рдПрдВ рдмрд┐рдирд╛ рдЧрдВрддрд╡реНрдп рдкрддреЗ рдХреЗ рдмрд┐рдирд╛ рд╢рд░реНрддред рд╕рднреА рд╕реНрдерд┐рддрд┐ рдХреЛрдб (рдПрд╕реА рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХреЗ рд▓рд┐рдП рд╕рд╢рд░реНрдд рд╢рд╛рдЦрд╛ рдХрдорд╛рдВрдб рднреА рд╣реИрдВ:
- JNZ рдФрд░ JZ рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП
- рдкреНрд░рд╡рд╛рд╕ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрдирд╕реА рдФрд░ рдЬреЗрд╕реА
- рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рдЬреЗрдкреАрдУ рдФрд░ рдЬреЗрдкреАрдИ
- рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдЬреЗрдкреА (рдкреНрд▓рд╕) рдФрд░ рдЬреЗрдПрдо (рдорд╛рдЗрдирд╕)
рдпрд╣рд╛рдБ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ:
case 0xc2:
рдХреЙрд▓ рдФрд░ рдЖрд░рдИрдЯреА
рдХреЙрд▓ рдХреЙрд▓ рдХреЗ рдмрд╛рдж рд╕реНрдЯреИрдХ рдкрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдкрддреЗ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЧрдВрддрд╡реНрдп рдкрддреЗ рдкрд░ рдХреВрджрддрд╛ рд╣реИред рдЖрд░рдИрдЯреА рд╕реНрдЯреИрдХ рд╕реЗ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреАрд╕реА рдкрд░ рдмрдЪрд╛рддрд╛ рд╣реИред CALL рдФрд░ RET рдХреЗ рд╕рд╢рд░реНрдд рд╕рдВрд╕реНрдХрд░рдг рд╕рднреА рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИрдВред
- рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП рд╕реАрдЬреЗрдб, рд╕реАрдПрдирдЬреЗрдб, рдЖрд░рдЬреЗрдб, рдЖрд░рдПрдирдЬреЗрдб
- рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рд▓рд┐рдП рд╕реАрдПрдирд╕реА, рд╕реАрд╕реА, рдЖрд░рдПрдирд╕реА, рдЖрд░рд╕реА
- CPO, CPE, RPO, рд╕рдорддрд╛ рдХреЗ рд▓рд┐рдП RPE
- рд╕рд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╕реАрдкреА, рд╕реАрдПрдо, рдЖрд░рдкреА, рдЖрд░рдПрдо
case 0xcd:
рдиреЛрдЯ
- PCHL рдХрдорд╛рдВрдб рдмрд┐рдирд╛ рд╢рд░реНрдд рдПрдЪрдПрд▓ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдореЗрдВ рдПрдХ рдкрддреЗ рдкрд░ рдХреВрджрддрд╛ рд╣реИред
- рдореИрдВрдиреЗ рдЗрд╕ рд╕рдореВрд╣ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ RST рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрд╣ рд╕реНрдЯреИрдХ рдкрд░ рд╡рд╛рдкрд╕реА рдкрддрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдореЗрдореЛрд░реА рдХреЗ рдиреАрдЪреЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкрддреЗ рдкрд░ рдХреВрджрддрд╛ рд╣реИред
рддрд╛рд░реНрдХрд┐рдХ рд╕рдореВрд╣
рдпрд╣ рд╕рдореВрд╣ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ (рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА
рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВ)ред рдЙрдирдХреА рдкреНрд░рдХреГрддрд┐ рд╕реЗ, рд╡реЗ рдПрдХ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдореВрд╣ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрд╢рди рд░рдЬрд┐рд╕реНрдЯрд░ рдП (рдбреНрд░рд╛рдЗрд╡) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрд╢рди рдЭрдВрдбреЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рднреА рдСрдкрд░реЗрд╢рди 8-рдмрд┐рдЯ рдорд╛рдиреЛрдВ рдкрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕ рд╕рдореВрд╣ рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдЬреЛрдбрд╝реЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рдХрдорд╛рдВрдб рдирд╣реАрдВ рд╣реИред
рдмреВрд▓рд┐рдпрди рдСрдкрд░реЗрд╢рди
рдФрд░, OR, NOT (CMP) рдФрд░ "рдПрдХреНрд╕рдХреНрд▓реВрд╕рд┐рд╡ рдпрд╛" (XOR) рдмреБрд▓рд┐рдпрди рдСрдкрд░реЗрд╢рди рдХрд╣рд▓рд╛рддреЗ рд╣реИрдВред рдпрд╛ рдФрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕рдордЭрд╛рдпрд╛ред рдирд╣реАрдВ рдХрдорд╛рдВрдб (8080 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ CMA рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рд╕рдВрдЪрд╛рдпрдХ рдХреЛ рдкреВрд░рдХ рдХрд░рддрд╛ рд╣реИ) рдмрд╕ рдереЛрдбрд╝рд╛ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ - рд╕рднреА рдЗрдХрд╛рдЗрдпрд╛рдВ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рд╢реВрдиреНрдп рдмрди рдЬрд╛рддреЗ рд╣реИрдВред
рдореИрдВ XOR рдХреЛ "рдЕрдВрддрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред рдЙрд╕рдХреА рд╕рддреНрдп рддрд╛рд▓рд┐рдХрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рдПрдХреНрд╕ | y | рдкрд░рд┐рдгрд╛рдо |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
рдФрд░, OR, рдФрд░ XOR рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ, рдореЗрдореЛрд░реА рдФрд░ рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреЙрд░реНрдо рд╣реИред (CMP рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдХреЗрд╕-рд╕рдВрд╡реЗрджреА рдХрдорд╛рдВрдб рд╣реИ)ред рдпрд╣рд╛рдБ opcodes рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ:
case 0x2F:
рдЪрдХреНрд░реАрдп рд╢рд┐рдлреНрдЯ рдХрдорд╛рдВрдб
рдпреЗ рдХрдорд╛рдВрдб рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред рджрд╛рдИрдВ рдУрд░ рдПрдХ рд╢рд┐рдлреНрдЯ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд┐рдЯ рд╕реЗ рджрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдмрд╛рдИрдВ рдУрд░ рдПрдХ рд╢рд┐рдлреНрдЯ - рдПрдХ рдмрд┐рдЯ рджреНрд╡рд╛рд░рд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
(0b00010000) = 0b00001000
(0b00000001) = 0b00000010
рд╡реЗ рдмреЗрдХрд╛рд░ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдЙрдиреНрд╣реЗрдВ рджреЛ рдХреА рд╢рдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдЧреБрдгрд╛ рдФрд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ рдмрд╛рдИрдВ рдкрд╛рд░реА рдХреЛ рд▓реЗрдВред
0b00000001
рджрд╢рдорд▓рд╡ 1 рд╣реИ, рдФрд░ рдЗрд╕реЗ рдмрд╛рдИрдВ рдУрд░ рд╢рд┐рдлреНрдЯ рдХрд░рдиреЗ рд╕реЗ рдпрд╣
0b00000010
рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ,
0b00000010
рджрд╢рдорд▓рд╡ 2ред рдпрджрд┐ рд╣рдо рдмрд╛рдИрдВ рдУрд░ рджреВрд╕рд░реА рдкрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ
0b00000100
рдорд┐рд▓рддрд╛ рд╣реИ, рдпрд╣реА рд╣реИ 4. рдмрд╛рдИрдВ рдУрд░ рдПрдХ рдФрд░ рдкрд╛рд░реА, рдФрд░ рд╣рдо 8. рд╕реЗ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХрд┐рд╕реА рднреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╕рдВрдЦреНрдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛: 5 (
0b00000101
) рдЬрдм рдмрд╛рдИрдВ рдУрд░ рд╢рд┐рдлреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ 10 (
0b00001010
) рджреЗрддрд╛ рд╣реИред рдПрдХ рдФрд░ рдмрд╛рдИрдВ рдкрд╛рд░реА 20 (
0b00010100
) рджреЗрддреА рд╣реИред рджрд╛рдИрдВ рдУрд░ рд╢рд┐рдлреНрдЯ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдПред
8080 рдореЗрдВ рдЧреБрдгрди рдХрдорд╛рдВрдб рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрди рдХрдорд╛рдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдЖрдк рдмреЛрдирд╕ рдЕрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдПрдХ рдмрд╛рд░ рдПрдХ рдЗрдВрдЯрд░рд╡реНрдпреВ рдореЗрдВ рдореБрдЭрд╕реЗ рдРрд╕рд╛ рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛ рдЧрдпрд╛ рдерд╛ред (рдореИрдВрдиреЗ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдореБрдЭреЗ рдХреБрдЫ рдорд┐рдирдЯ рд▓рдЧреЗред)
рдпреЗ рдХрдорд╛рдВрдб рд╕рд╛рдЗрдХреНрд▓реАрдХ рд░реВрдк рд╕реЗ рдбреНрд░рд╛рдЗрд╡ рдХреЛ рдШреБрдорд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдХреИрд░реА рдлреНрд▓реИрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдХреБрдЫ рдЖрджреЗрд╢ рджрд┐рдП рдЧрдП рд╣реИрдВ:
case 0x0f:
рддреБрд▓рдирд╛
рд╕реАрдПрдордкреА рдФрд░ рд╕реАрдкреАрдЖрдИ рдХрд╛ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдЭрдВрдбреЗ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ (рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд▓рд┐рдП)ред рд╡реЗ рдЭрдВрдбреЗ рдХреЛ рдШрдЯрд╛рдХрд░ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
- рд╕рдорд╛рди рд░реВрдк рд╕реЗ: рдпрджрд┐ рджреЛ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╕рдорд╛рди рд╣реИрдВ, рддреЛ Z рдзреНрд╡рдЬ рд╕реЗрдЯ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЙрдирдХрд╛ рдШрдЯрд╛рд╡ рд╢реВрдиреНрдп рджреЗрддрд╛ рд╣реИред
- рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ: рдпрджрд┐ A рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╡реИрд▓реНрдпреВ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ CY рдЭрдВрдбреЗ рдХреЛ рд╕рд╛рдл рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдШрдЯрд╛рд╡ рдмрд┐рдирд╛ рдЙрдзрд╛рд░ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
- рдЫреЛрдЯрд╛: рдпрджрд┐ A рддреБрд▓рдирд╛ рдХрд┐рдП рдЧрдП рдорд╛рди рд╕реЗ рдХрдо рд╣реИ, рддреЛ CY рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ A рдХреЛ рдШрдЯрд╛рд╡ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдзрд╛рд░ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред
рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ, рдореЗрдореЛрд░реА рдФрд░ рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрди рдХрдорд╛рдВрдб рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдШрдЯрд╛рд╡ рд╣реИ:
case 0xfe:
рд╕реАрдПрдорд╕реА рдФрд░ рдПрд╕рдЯреАрд╕реА
рд╡реЗ рддрд╛рд░реНрдХрд┐рдХ рд╕рдореВрд╣ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд░реА рдлрд╝реНрд▓реИрдЧ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рд╡рд┐рд╢реЗрд╖ рдХрдорд╛рдВрдб рдХрд╛ рд╕рдореВрд╣
рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╢реНрд░реЗрдгреА рдореЗрдВ рдирд╣реАрдВ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдЕрдВрддрд░рд┐рдХреНрд╖ рдЖрдХреНрд░рдордгрдХрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ рддреЛ рд╣рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЙрдирдХреЗ рдкрд╛рд╕ рд▓реМрдЯрдирд╛ рд╣реЛрдЧрд╛ред
- рдИрдЖрдИ рдФрд░ рдбреАрдЖрдИ рдЗрдВрдЯрд░рдкреНрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рд░рд╛рдЬреНрдп рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдмрд╛рдзрд╛_ рд╕рдХреНрд╖рдо рдзреНрд╡рдЬ рдХреЛ рдЬреЛрдбрд╝рд╛, рдФрд░ рдЗрди рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реЗрдЯ / рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ред
- рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдо рдФрд░ рд╕рд┐рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ I / O рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдореИрдиреБрдЕрд▓ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрди рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдВрддрд░рд┐рдХреНрд╖ рдЖрдХреНрд░рдордгрдХрд╛рд░рд┐рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЙрдирдХрд╛ рдЕрдиреБрдХрд░рдг рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред
- HLT рдПрдХ рдкрдбрд╝рд╛рд╡ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЗрд╕ рдЖрджреЗрд╢ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдирд╛ рдкрдж рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ (0)) рдХреЛрдбред
- IN рдФрд░ OUT рдРрд╕реЗ рдХрдорд╛рдВрдб рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ 8080 рдкреНрд░реЛрд╕реЗрд╕рд░ рдЙрдкрдХрд░рдг рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрдмрдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред (рдмрд╛рдж рдореЗрдВ рд╣рдо рдЙрдирдХреЗ рдкрд╛рд╕ рд▓реМрдЯ рдЖрдПрдВрдЧреЗ)ред
- рдПрдирдУрдкреА "рдХреЛрдИ рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ" рд╣реИред рдПрдирдУрдкреА рдХрд╛ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреИрдирд▓ рдЯрд╛рдЗрдорд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реИ (рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рд╕реАрдкреАрдпреВ рдЪрдХреНрд░ рд▓рдЧрддреЗ рд╣реИрдВ)ред
рдПрдирдУрдкреА рдХрд╛ рдПрдХ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛрдб рд╕рдВрд╢реЛрдзрди рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдЧреЗрдо рдХрд╛ ROM рдХреЛрдб рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдХреЗрд╡рд▓ рдЕрдирд╛рд╡рд╢реНрдпрдХ opcodes рдХреЛ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рднреА рдХреЙрд▓ рдФрд░ JMP рдХрдорд╛рдВрдб рдХреЛ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдХреЛрдб рдЪрд╛рд▓ рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд╣реЛрдиреЗ рдкрд░ рд╡реЗ рдЧрд▓рдд рд╣реЛрдВрдЧреЗ)ред рдПрдирдУрдкреА рд╕реЗ рд╣рдо рдХреЛрдб рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХреЛрдб рдЬреЛрдбрд╝рдирд╛ рдЬреНрдпрд╛рджрд╛ рдХрдард┐рди рд╣реИ! рдЖрдк рдЗрд╕реЗ рд░реЙрдо рдореЗрдВ рдХрд╣реАрдВ рднреА рдЬрдЧрд╣ рдвреВрдВрдврдХрд░ рдФрд░ рдХрдорд╛рдВрдб рдХреЛ JMP рдореЗрдВ рдмрджрд▓рдХрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВредрдвреЗрд░ рд╕рдореВрд╣
рд╣рдордиреЗ рд╕реНрдЯреИрдХ рд╕рдореВрд╣ рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣реА рдпрд╛рдВрддреНрд░рд┐рдХреА рдкреВрд░реА рдХрд░ рд▓реА рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдореЗрд░реЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛, рддреЛ рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
PUSH рдФрд░ POP
PUSH рдФрд░ POP рдХреЗрд╡рд▓ рд░рдЬрд┐рд╕реНрдЯрд░ рдЬреЛрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред PUSH рд╕реНрдЯреИрдХ рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ POP рд╕реНрдЯреИрдХ рдХреЗ рдКрдкрд░ рд╕реЗ 2 рдмрд╛рдЗрдЯреНрд╕ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИред
PUSH рдФрд░ POP рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдСрдкрдХреЛрдб рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рдПрдХ: BC, DE, HL рдФрд░ PSWред PSW рдбреНрд░рд╛рдЗрд╡ рдлреНрд▓реИрдЧ рд░рдЬрд┐рд╕реНрдЯрд░ рдФрд░ рд╕реНрдЯреЗрдЯрд╕ рдХреЛрдб рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЬреЛрдбрд╝реА рд╣реИред рдпрд╣рд╛рдВ рдмреАрд╕реА рдФрд░ рдкреАрдПрд╕рдбрдмреНрд▓реНрдпреВ рдХреЗ рд▓рд┐рдП рдкреАрдпреВрдПрд╕рдПрдЪ рдФрд░ рдкреАрдУрдкреА рдХрд╛ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рд╣реИ - рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
case 0xc1:
SPHL рдФрд░ XTHL
рд╕реНрдЯреИрдХ рдЧреНрд░реБрдк рдореЗрдВ рджреЛ рдФрд░ рдЯреАрдореЗрдВ рд╣реИрдВ- SPHL рдФрд░ XTHLред
SPHL
рдПрдЪрдПрд▓ рдХреЛ рдПрд╕рдкреА (рдПрд╕рдкреА рдХреЛ рдирдпрд╛ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ) рд▓реЗ рдЬрд╛рддрд╛ рд╣реИредXTHL
рд╕реНрд╡реИрдк рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдЪрдПрд▓ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд╕рд╛рде рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреНрдпрд╛ рд╣реИред рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА? рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛
рдмрд╛рдЗрдирд░реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ
рдХрдВрдкреНрдпреВрдЯрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд░реНрдгрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЪреБрдиреЗрдВ - рдХреНрдпрд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрдВ рдФрд░ рдЙрдирдХрд╛ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реАрдкреАрдпреВ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рд▓рдХреНрд╖реНрдп рд╕реАрдкреАрдпреВ рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдФрд░ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд
рдЬрдм рд╣рдордиреЗ рд╣реЗрдХреНрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдорд╛рдирд╛ - рдЕрд░реНрдерд╛рдд, рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЕрдВрдХ рдХрд╛ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рдерд╛, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рджреЛ (рдЗрдХрд╛рдЗрдпреЛрдВ, рджреЛ, рдЪрд╛рд░, рдЖрджрд┐) рдХреА рд╢рдХреНрддрд┐ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ред
рд╣рдо рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рднрдВрдбрд╛рд░рдг рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╢реНрди рдХреЗ рдбреЗрдЯрд╛ рдореЗрдВ рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ, рдЕрд░реНрдерд╛рдд рд╡реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ (рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ, рдПрдордПрд╕рдмреА) рджреНрд╡рд╛рд░рд╛ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкрд╣рдЪрд╛рди рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдбреЗрдЯрд╛ рдХрд╛ рдЖрдХрд╛рд░ рдПрдХ рдмрд╛рдЗрдЯ рд╣реИ, рддреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП MSB рдмрд┐рдЯ рдорд╛рди рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЦреНрдпрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рдФрд░ рд╢реВрдиреНрдп MSB рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реИред
рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдорд╛рди рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдФрд░ MSB рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдЦреНрдпрд╛ рдХреНрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╣реЗрдХреНрд╕-рдирдВрдмрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдирд░реА "NOT" рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдПрдХ рдЬреЛрдбрд╝реЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реЗрдХреНрд╕ рд╕рдВрдЦреНрдпрд╛ 0x80 рдХреЗ рд▓рд┐рдП, MSB рдмрд┐рдЯ рд╕реЗрдЯ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИред рд╕рдВрдЦреНрдпрд╛ 0x80 рдХрд╛ рдмрд╛рдЗрдирд░реА "рдирд╣реАрдВ" 0x7f рд╣реИ, рдпрд╛ рджрд╢рдорд▓рд╡ 127. 127 + 1 = 128 рд╣реИред рдЕрд░реНрдерд╛рддреН, 0x80 рджрд╢рдорд▓рд╡ рдореЗрдВ -128 рд╣реИред рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг: 0xC5ред рдирд╣реАрдВ (0xC5) = 0x3A = рджрд╢рдорд▓рд╡ 58 +1 = рджрд╢рдорд▓рд╡ 59ред рдЕрд░реНрдерд╛рддреН, 0xC5 рджрд╢рдорд▓рд╡ -59 рд╣реИред
рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЦреНрдпрд╛рдУрдВ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рд╕рд╛рде рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рдЕрднреА рднреА
рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ ред рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрд╕реЗ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг 1
рджрд╢рдорд▓рд╡ рд╣реЗрдХреНрд╕ рдмрд╛рдЗрдирд░реА
-3 0xFD 1111 1101
+ 10 0x0A +0000 1010
----- -----------
7 0x07 1 0000 0111
^ рдпрд╣ рдХреИрд░реА рдмрд┐рдЯ рдореЗрдВ рджрд░реНрдЬ рд╣реИ
рдЙрджрд╛рд╣рд░рдг 2
рджрд╢рдорд▓рд╡ рд╣реЗрдХреНрд╕ рдмрд╛рдЗрдирд░реА
-59 0xC5 1100 0101
+ 33 0x21 +0010 0001
----- -----------
-26 0xE6 1110 0110
рдЙрджрд╛рд╣рд░рдг 1 рдореЗрдВ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ 7. рдореЗрдВ 10 рдФрд░ -3 рдкрд░рд┐рдгрд╛рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╕реА рдзреНрд╡рдЬ рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг 2 рдореЗрдВ, рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рдгрд╛рдо рдирдХрд╛рд░рд╛рддреНрдордХ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдбрд┐рдХреЛрдб рдХрд░рддреЗ рд╣реИрдВ: рдирд╣реАрдВ (0xE6) = 0x19/25 + 1 = 26.
0xE6 = -26
рдорд╕реНрддрд┐рд╖реНрдХ рдХрд╛ рд╡рд┐рд╕реНрдлреЛрдЯ!
рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВред
рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░
рд╕реА рдореЗрдВ, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрдмрдВрдз рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдорд╛рдирдХ / рдкреБрд░рд╛рдиреЗ рд╕реНрдХреВрд▓ C рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЪрд╛рд░, рдЗрдВрдЯ, рдФрд░ рд▓рдВрдмреЗ рд╣реЛрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдирдХреЗ рдорд┐рддреНрд░ рдиреЗ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд char, рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд int, рдФрд░ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд▓рдВрдмреЗред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдореЗрдВ рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ stdint.h рд╣реИ, рддреЛ рдЖрдк int8_t, uint8_t, рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк 8 рдмрд┐рдЯреНрд╕ рдореЗрдВ 0 рд╕реЗ 255 рддрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╣реЗрдХреНрд╕ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ 0x00 рд╕реЗ 0xFF рддрдХ рд╣реИред рдЪреВрдВрдХрд┐ 0xFF рдореЗрдВ "рд╕рднреА рдмрд┐рдЯреНрд╕ рд╕реЗрдЯ" рд╣реИрдВ, рдФрд░ рдпрд╣ рджрд╢рдорд▓рд╡ 255 рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрд╛рд░реНрдХрд┐рдХ рд╣реИ рдХрд┐ рдПрдХрд▓-рдмрд╛рдЗрдЯ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдЕрдВрддрд░рд╛рд▓ 0-255 рд╣реИред рдЕрдВрддрд░рд╛рд▓ рд╣рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд╕рднреА рдЖрдХрд╛рд░ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ - рд╕рдВрдЦреНрдпрд╛рдПрдВ рдЙрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рд╕рднреА рдмрд┐рдЯ рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИрдВред
рдЯрд╛рдЗрдк | рдЕрдВрддрд░рд╛рд▓ | рд╣реЗрдХреНрд╕ |
---|
8-рдмрд┐рдЯ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд | 0-255 | 0x0-0xFF |
8-рдмрд┐рдЯ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП | -128-127 | 0x80-0x7F |
16-рдмрд┐рдЯ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд | 0-65,535 | 0x0-0xFFFF |
16-рдмрд┐рдЯ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП | -32,768-32,767 | 0x8000-0x7FFF |
32-рдмрд┐рдЯ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд | 0-4294967295 | 0x0-0xFFFFFFFF |
32-рдмрд┐рдЯ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП | -2147483648-2147483647 | 0x80000000-0x7FFFFFFF |
рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ -1 рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдмрд┐рдЯ рд╕реЗрдЯ рд╣реИрдВ (рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдмрд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП 0xFF, рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд 16-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП 0xFFFF рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд 32-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП 0xFFFFFFFF)ред рдпрджрд┐ рдбреЗрдЯрд╛ рдХреЛ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рджрд┐рдП рдЧрдП рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред
рдкреНрд░реЛрд╕реЗрд╕рд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реВрдк рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрднрд╡рддрдГ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рддрдм рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдЙрди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо 8-рдмрд┐рдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП uint8_t рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд╕рдВрдХреЗрдд: рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдкрдХреЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ gdb рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдмрд╛рдЗрдирд░реА рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдиреАрдЪреЗ рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдКрдВрдЧрд╛ - рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рд╕рддреНрд░ рдореЗрдВ, # рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рдРрд╕реА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝реАрдВред
# /c, gdb
(gdb) print /c 0xFD
$1 = -3 '?'
# /x, gdb hex
# "p" "print"
(gdb) p /c 0xA
$2 = 10 '\n'
# 2 " "
(gdb) p /c 0xC5
$3 = -59 '?'
(gdb) p /c 0xC5+0x21
$4 = -26 '?'
# print , gdb
(gdb) p 0x21
$9 = 33
# , gdb,
# ,
(gdb) p 0xc5
$5 = 197 #
(gdb) p /c 0xc5
$3 = -59 '?' #
(gdb) p 0xfd
$6 = 253
# ( 32- )
(gdb) p /x -3
$7 = 0xfffffffd
# 1
(gdb) print (char) 0xff
$1 = -1 '?'
# 1
(gdb) print (unsigned char) 0xff
$2 = 255 '?'
рдЬрдм рдореИрдВ рд╣реЗрдХреНрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЗрд╕реЗ gdb рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ - рдФрд░ рдпрд╣ рд▓рдЧрднрдЧ рд╣рд░ рджрд┐рди рд╣реЛрддрд╛ рд╣реИред рдПрдХ GUI рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдЦреЛрд▓рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд▓рд┐рдирдХреНрд╕ (рдФрд░ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕) рдорд╢реАрдиреЛрдВ рдкрд░, рдЬреАрдбреАрдмреА рд╕рддреНрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ рдФрд░ "рдЬреАрдбреАрдмреА" рджрд░реНрдЬ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ рдПрдХреНрд╕рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдПрдХреНрд╕рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкреНрд░рд┐рдВрдЯрдлрд╝ рдЖрдЙрдЯрдкреБрдЯ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ)ред
рд╡рд┐рдВрдбреЛрдЬ рдкрд░, gdb рдбрд┐рдмрдЧрд░ рд╕рд╛рдЗрдЧрд╡рд┐рди рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИредрд╕реАрдкреАрдпреВ рдПрдореБрд▓реЗрдЯрд░ рд╕рдорд╛рдкреНрддрд┐
рдпрд╣ рд╕рдм рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдПрдХ рд▓рдВрдмреА рдпрд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдЖрдкрдХреЛ рддрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╛ рддреЛ рдкреВрд░реНрдг 8080 рдПрдореБрд▓реЗрд╢рди рдмрдирд╛рдПрдВ, рдпрд╛ рдЧреЗрдо рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдХрдорд╛рдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВредрдпрджрд┐ рдЖрдк рдкреВрд░реНрдг рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдФрд░ рд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛редрдПрдХ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдХреЗрд╡рд▓ рдЦреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рд╣реИред рд╣рдо рдЙрд╕ рд╡рд┐рд╢рд╛рд▓ рд╕реНрд╡рд┐рдЪ рдирд┐рд░реНрдорд╛рдг рдХреЛ рднрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ рдЬреЛ рд╣рдордиреЗ рдПрдореБрд▓реЗрдЯрд░ рд╢реЗрд▓ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдмрдирд╛рдпрд╛ рдерд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╣рдо рддрдм рддрдХ рджреЛрд╣рд░рд╛рдПрдВрдЧреЗ рдЬрдм рддрдХ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдХрд▓ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрджреЗрд╢ рди рд╣реЛ:- ROM рдЕрдВрддрд░рд┐рдХреНрд╖ рдЖрдХреНрд░рдордгрдХрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдореБрд▓реЗрдЯрд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ
UnimplementedInstruction()
рдпрджрд┐ рдХрдорд╛рдВрдб рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ рддреЛ рдХреЙрд▓ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ- рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВ
- рдЧреЛрдЯреЛ рез
, , тАФ . , :
int Emulate8080Op(State8080* state) { unsigned char *opcode = &state->memory[state->pc]; Disassemble8080Op(state->memory, state->pc); switch (*opcode) { case 0x00:
.
: , 50 , 8080. , :
| |
---|
0x00 | NOP |
0x01 | LXI B,D16 |
0x05 | DCR B |
0x06 | MVI B,D8 |
0x09 | DAD B |
0x0d | DCR C |
0x0e | MVI C,D8 |
0x0f | RRC |
0x11 | LXI D,D16 |
0x13 | INX D |
0x19 | DAD D |
0x1a | LDAX D |
0x21 | LXI H,D16 |
0x23 | INX H |
0x26 | MVI H,D8 |
0x29 | DAD H |
0x31 | LXI SP,D16 |
0x32 | STA adr |
0x36 | MVI M,D8 |
0x3a | LDA adr |
0x3e | MVI A,D8 |
0x56 | MOV D,M |
0x5e | MOV E,M |
0x66 | MOV H,M |
0x6f | MOV L,A |
0x77 | MOV M,A |
0x7a | MOV A,D |
0x7b | рдПрдордУрд╡реА рдП, рдИ |
0x7c | рдПрдордУрд╡реА рдП, рдПрдЪ |
0x7E | рдПрдордУрд╡реА рдП, рдПрдо |
0xa7 | ANA рдП |
0xaf | XRA рдП |
0xc1 | рдкреЙрдк рдмреА |
0xc2 | Jnz adr |
0xc3 | рдЬреЗрдПрдордкреА рдПрдбреАрдЖрд░ |
0xc5 | рдкреВрд╖ рдмреА |
0xc6 | ADI D8 |
0xc9 | рдЖрд░рдИрдЯреА |
0xcd | рдПрдбреНрд░ рдХреЛ рдмреБрд▓рд╛рдУ |
0xd1 | рдкреЙрдк рдбреА |
0xd3 | OUT D8 |
0xd5 | рдкреВрд╖ D |
0xe1 | рдкреЙрдк рдПрдЪ |
0xe5 | рдкреВрд╖ рд╣ |
0xe6 | ANI D8 |
0xeb | XCHG |
0xf1 | рдкреАрдУрдкреА PSW |
0xf5 | PUSH PSW |
0xfb | рдИрдЖрдИ |
0xFE | CPI D8 |
рдпреЗ рдХреЗрд╡рд▓ 50 рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ 10 рдРрд╕реЗ рдЖрдВрджреЛрд▓рди рд╣реИрдВ рдЬреЛ рддреБрдЪреНрдЫ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВредрдбрд┐рдмрдЧрд┐рдВрдЧ
. , . , ( , ), , .
тАФ , . , , . , . . , , , :
- рдЕрдЧрд▓реА рдЯреАрдо рдХреЗ рд▓рд┐рдП
- рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдПрдореБрд▓реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛
- рдореЗрд░реЗ рднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░рд╛ рдмреБрд▓рд╛рдирд╛
- рд╣рдорд╛рд░реЗ рджреЛ рд░рд╛рдЬреНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ
- рдХрд┐рд╕реА рднреА рдорддрднреЗрдж рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рддрд▓рд╛рд╢
- рдЧреЛрдЯреЛ рей
рдПрдХ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдЗрд╕ рд╕рд╛рдЗрдЯ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ ред рдпрд╣ рдПрдХ 8080 рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдПрдореБрд▓реЗрдЯрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ ROM рд╕реНрдкреЗрд╕ рдЗрдирд╡реЗрд╕реНрдЯрд░реНрд╕ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣рд╛рдБ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ:- рдЕрдВрддрд░рд┐рдХреНрд╖ рдЖрдХреНрд░рдордгрдХрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдЕрдВрддрд░рд┐рдХреНрд╖ рдЖрдХреНрд░рдордгрдХрд╛рд░рд┐рдпреЛрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ
- рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд░рди 1" рдмрдЯрди рджрдмрд╛рдПрдВред
- рд╣рдо рдЕрдкрдиреЗ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
- рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рддреБрд▓рдирд╛ рдЕрдкрдиреЗ рд╕рд╛рде рдХрд░реЗрдВ
- рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рддреЛ рдЧреЛрдЯреЛ 2
- рдпрджрд┐ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рдирд┐рд░реНрджреЗрд╢ рдЕрдиреБрдХрд░рдг рдЧрд▓рдд рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЪрд░рдг 1 рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред
рдореИрдВрдиреЗ рдЕрдкрдиреЗ 8080 рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдореИрдВ рдЭреВрда рдирд╣реАрдВ рдмреЛрд▓реВрдВрдЧрд╛ - рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рд▓рдВрдмреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореЗрд░реА рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЯрд╛рдЗрдкреЛрд╕ рдФрд░ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрдИрдВ, рдЬрд┐рдирдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдерд╛редрдпрджрд┐ рдЖрдк рдЪрд░рдгрдмрджреНрдз рддрд░реАрдХреЗ рд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ 30 рд╣рдЬрд╛рд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛ $ 1a5f рдХреЗ рдЪрдХреНрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреЛрдб рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЗрд╕ рдХреЛрдб рдХреЛ рдЕрдХреНрд╕рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИредрд╕реНрдХреНрд░реАрди рдХреЗ рдкрд╣рд▓реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдмрд╛рдж, 50 рд╣рдЬрд╛рд░ рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рдж, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрд╕ рдЕрдВрддрд╣реАрди рд▓реВрдк рдореЗрдВ рдлрдВрд╕ рдЬрд╛рддрд╛ рд╣реИ: 0ada LDA $20c0 0add ANA A 0ade JNZ $0ada
рдпрд╣ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ $ 20c0 рдореЗрдВ рд╕реНрдореГрддрд┐ рдореЗрдВ рдорд╛рди рд╢реВрдиреНрдп рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЗрд╕ рд▓реВрдк рдореЗрдВ рдХреЛрдб $ 20c0 рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдпрд╣ рдХрд╣реАрдВ рдФрд░ рд╕реЗ рд╕рдВрдХреЗрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рдЖрд░реНрдХреЗрдб рдорд╢реАрди рдХреЗ "рд▓реЛрд╣рд╛" рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИредрдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЕрдЧрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рд╕реАрдкреАрдпреВ рдПрдореБрд▓реЗрдЯрд░ рдЗрд╕ рдЕрдВрддрд╣реАрди рд▓реВрдк рдореЗрдВ рдЖрддрд╛ рд╣реИредрд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рд╕реНрд░реЛрдд рджреЗрдЦреЗрдВ редрдкреВрд░реНрдг 8080 рдЕрдиреБрдХрд░рдг
рдПрдХ рд╕рдмрдХ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рд▓рд╛рдЧрдд рджреА: рдЙрди рдЯреАрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рди рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд рдХрд┐рд╕реА рднреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдВрдЧреВрдареЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд┐рдпрдо рд╣реИред рдпрджрд┐ рдЖрдк рдЯреАрдо рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдЖрдк рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рджреВрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдЙрддрдирд╛ рд╣реА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛редрдПрдХ рдФрд░ рдЙрдкрд╛рдп рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ рдкреВрд░реНрдг 8080 рдПрдореБрд▓реЗрдЯрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ 8080 рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рдХреА рдЦреЛрдЬ рдХреА рдЬрд┐рд╕рдХрд╛ рдирд╛рдо cpudiag.asm рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ 8080 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрдорд╛рдВрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредрдореИрдВ рдЖрдкрдХреЛ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рддрд╛ рд╣реВрдВ:- рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рджреВрд╕рд░реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдПред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ cpudiag.asm рдХрд╛ рдПрдирд╛рд▓реЙрдЧ рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИред
- рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рдлреА рд╢реНрд░рдорд╕рд╛рдзреНрдп рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдбрд╛рдВрддрд░рдг рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛрдб рдореЗрдВ рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдмрдбрд╝реА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдпреЗ рдЪрд░рдг рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВредрдЯреЗрд╕реНрдЯ рдЕрд╕реЗрдВрдмрд▓реА
рдореИрдВрдиреЗ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореИрдВ рдЗрд╕ рдЕрдЪреНрдЫреЗ рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдмрд╕ рдЧрдпрд╛ ред рдореИрдВрдиреЗ рдкрд╛рда cpudiag.asm рдХреЛ рдмрд╛рдПрдБ рдлрд▓рдХ рдореЗрдВ рдЪрд┐рдкрдХрд╛ рджрд┐рдпрд╛ рдФрд░ рдмрд┐рд▓реНрдб рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ред рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдПрдХ рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдХреИрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдирд┐рдЪрд▓реЗ рдмрд╛рдПрдБ рдореЗрдВ "рд╕реБрдВрджрд░ рдХреЛрдб рдмрдирд╛рдПрдБ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдореИрдВрдиреЗ test.bin рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХреА, рдЬрд┐рд╕рдХрд╛ рдХреЛрдб 8080 рд╕рдВрдХрд▓рд┐рдд рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рдбрд┐рд╕реНрдХреНрд▓реЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореЗрд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рджрд░реНрдкрдг рд╕реЗcpudiag.asm рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдореЗрд░реА рд╕рд╛рдЗрдЯ рд╕реЗcpudiag.bin (рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб 8080) рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ редрдореЗрд░реЗ рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЕрдкрд▓реЛрдб рдХрд░рдирд╛
invaders.* .
. -,
ORG 00100H
, , , 0x100 hex. 8080, , . , , , 0x100.
-, , . hex-
JMP $0100
, . ( PC 0x100.)
-, . ,
STACK EQU TEMPP+256
, . , $6ad, PUSH . , 0x100, , , ┬л0x7┬╗ , .
, DAA , , ( JMP).
ReadFileIntoMemoryAt(state, "/Users/kpmiller/Desktop/invaders/cpudiag.bin", 0x100);
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд╕реАрдкреА / рдПрдо рдУрдПрд╕ рдХреА рдорджрдж рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ CP / M рдХреЗ рдкрд╛рд╕ $ 0005 рдкрд░ рдХреБрдЫ рдХреЛрдб рд╣реИ рдЬреЛ рдХрдВрд╕реЛрд▓ рдХреЛ рд╕рдВрджреЗрд╢ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ CALL рдПрдореБрд▓реЗрд╢рди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдирд┐рдХрд▓рд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрди рджреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдХреЙрд▓ рдЕрдиреБрдХрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: case 0xcd:
рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдЕрдкрдиреЗ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдорд┐рд▓реАрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреМрди рдЦреЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡реЗ рдереЗ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдвреВрдВрдврдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛редрдореИрдВрдиреЗ рдЖрдЧреЗ рдмрдврд╝рдХрд░ рд╕рднреА opcodes (DAA рдФрд░ рдЙрдирдХреЗ рджреЛрд╕реНрддреЛрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде) рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдореЗрд░реА рдЪреБрдиреМрддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдореБрдЭреЗ 3-4 рдШрдВрдЯреЗ рд▓рдЧреЗред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдиреБрдЕрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рддреЗрдЬ рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдерд╛ - рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдкрд╛рддрд╛, рдореИрдВрдиреЗ рдореИрдиреБрдЕрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ 4 рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдиреБрдЕрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрд╛рдирдирд╛ рднреА рдПрдХ рдорд╣рд╛рди рдХреМрд╢рд▓ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПредрдпрджрд┐ рдЖрдк рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдпрд╣ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЕрдВрджрд░ рдЪрд▓ рд░рд╣реЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдХрдИ рдорд┐рд▓рд┐рдпрди рдХрдорд╛рдВрдб рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрдЯрд░рдкреНрдЯ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреЛ рдПрдореБрд▓реЗрдЯрд░ рдХреА рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред