рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рди рд╣реЛрдВ

рд╡рд┐рджреНрдпреБрдд рдЪреБрдореНрдмрдХреАрдп рд░рд┐рд▓реЗ рдкрд░ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ - рдХреЗрд╡рд▓ рдЖрда рдмрд╣рдиреЛрдВ рдХрд╛ рдПрдХ рдбрдВрдк?

рдмреЗрд╢рдХ рдЦреЗрд▓ рдЦреЗрд▓реЗрдВ! рдкреНрд░рд╛рдЪреАрди рд▓реЛрдЧ рдПрдордХреЗ -61 / 52 рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдкрд░ рдЦреЗрд▓реЗ, рдЬреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред



рдЕрдВрджрд╛рдЬ рд▓рдЧрд╛рдУ


рдореИрдВрдиреЗ рдЦреЗрд▓ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЬрд╣рд╛рдВ рдЖрдзреЗ рдбрд┐рд╡реАрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ 0 рд╕реЗ 100 рддрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рджреНрд╡рд╛рд░рд╛ рдЫрд┐рдкреЗ рд╣реБрдП рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрдВрдкреНрдпреВрдЯрд░ рдП рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдХреВрдмрдбрд╝ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рднреА рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд░рд┐рд▓реЗ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдПрд▓ рдИ рдбреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рдЕрдм рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ ROM рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдирд┐рд░рдВрддрд░ рдбреА рдХреА рдЬрдЧрд╣ред рдпрджрд┐ 0 рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдзрд╛рд░рдгрд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдзрд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЕрдиреНрдпрдерд╛, рдХрдоред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ "рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦреЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЗрд╕ D рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдмрд╛рдж, рдХрдВрдкреНрдпреВрдЯрд░ рдЕрдЧрд▓реЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдКрдкрд░реА рдпрд╛ рдирд┐рдЪрд▓реА рд╕реАрдорд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд┐рдЫрд▓реА рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг
MOVI B, 1 ; 00: 10000001 00000001 MOVI C, 101 ; 01: 10000010 01100101 Loop: ADD A, B, C ; 02: 01001000 00011010 SHR A, A ; 03: 01111000 00001100 HALT ; 04: 00010000 00000000 MOVI D, guess ; 05: 10000011 iiiiiiii OR F, D, D ; 06: 01101000 00110011 JMP NZ, Greater ; 07: 11100111 00001010 MOV B, A ; 08: 00011001 00000000 JMP Loop ; 09: 10000111 00000010 Greater: MOV C, A ; 0a: 00011010 00000000 JMP Loop ; 0b: 10000111 00000010 




рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣ рд░реЙрдо рдХреА рддрд╕реНрд╡реАрд░ рдХреЛ рджреЗрдЦрдХрд░ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЧреЗрдо рдЦреЗрд▓рддреЗ рд╕рдордп рдЗрд╕ рддрд░рд╣ рдХреЗ рдЫреЛрдЯреЗ рдЯреЙрдЧрд▓ рд╕реНрд╡рд┐рдЪ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ (рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЧрд▓рддреА рд╕реЗ рдЗрд╕реЗ рдЦрд░рд╛рдм рди рдХрд░реЗрдВ)ред

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдХ рдЕрд▓рдЧ рдЗрдирдкреБрдЯ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЖрдпрд╛ред рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП , рдЯреЙрдЧрд▓ рд╕реНрд╡рд┐рдЪ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрд╕рдХрд╛ рдореВрд▓реНрдп рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд░реЙрдо рдмрджрд▓рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдЕрдм рдХрдВрдкреНрдпреВрдЯрд░ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдбреА рдореЗрдВ рдЗрдХрд╛рдИ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдпрд╛ рддреЛ рдЗрд╕реЗ рддреНрдпрд╛рдЧ рджреЗрддрд╛ рд╣реИ (рдпрджрд┐ рдЕрдиреБрдорд╛рди рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдХрдо рд╣реИ) рдпрд╛ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реИ (рдпрджрд┐ рдЕрдиреБрдорд╛рди рдЕрдзрд┐рдХ рд╣реИ)ред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг
  MOVI B, 1 ; 00: 10000001 00000001 MOVI C, 101 ; 01: 10000010 01100101 Loop: ADD A, B, C ; 02: 01001000 00011010 SHR A, A ; 03: 01111000 00001100 MOVI D, 1 ; 04: 10000011 00000001 HALT ; 05: 00010000 00000000 OR F, D, D ; 06: 01101000 00110011 JMP NZ, Greater ; 07: 11100111 00001010 MOV B, A ; 08: 00011001 00000000 JMP Loop ; 09: 10000111 00000010 Greater: MOV C, A ; 0a: 00011010 00000000 JMP Loop ; 0b: 10000111 00000010 



рдШрдЯрд╛рд╡ рдЦреЗрд▓ (рдмрд╛рд╢ рдЦреЗрд▓)


рдПрдХ рдФрд░ рдХреНрд▓рд╛рд╕рд┐рдХ рдЧреЗрдо рдЬреЛ рдиреМрд╕рд┐рдЦрд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдХреНрд╕рд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ рдмрдХреЗрдЯ рдЧреЗрдоред
рдЗрд╕рдореЗрдВ, рд╢реБрд░реВ рдореЗрдВ рдПрди рдЖрдЗрдЯрдо рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдвреЗрд░ рд╕реЗ рджреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХрдо рд╕реЗ рдХрдо рдПрдХ рдФрд░ рдПрдо рдЖрдЗрдЯрдо рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВред рд╣рд╛рд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд╣ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рд╣реИред



рдореЗрд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЧреЗрдо рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, 21 рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 21 рдореИрдЪ)ред рдЦрд┐рд▓рд╛рдбрд╝реА рдЕрдкрдиреА рдмрд╛рд░реА рдкрд░ 1 рд╕реЗ 3 рдореИрдЪ рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ рдЬреЛ рдЖрдЦрд┐рд░реА рдореИрдЪ рдЬреАрддрддрд╛ рд╣реИ рд╡рд╣ рдЬреАрдд рдЬрд╛рддрд╛ рд╣реИред

рдЦреЗрд▓ рдореЗрдВ рдкрд╣рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП рдЬреАрддрдиреЗ рдХреА рд░рдгрдиреАрддрд┐ рд╣реЛрддреА рд╣реИ - рд╣рдореЗрд╢рд╛ рдореИрдЪреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ, рдЬреЛ рдХрд┐ рдЪрд╛рд░ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЪреВрдВрдХрд┐ 0 рднреА рдЪрд╛рд░ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рджреВрд╕рд░рд╛ рдЦрд┐рд▓рд╛рдбрд╝реА рдЦреЗрд▓ рдХреЛ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡рд╣ рд╣рд╛рд░ рдЬрд╛рдПрдЧрд╛ред

рд▓реЛрдЧреЛрдВ рдХреЛ рдореМрдХрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкреНрдпреВрдЯрд░ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЧрд▓рддреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдЬреАрддрдиреЗ рдХреА рд░рдгрдиреАрддрд┐ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдРрд╕рд╛ рдХрд░реЗрдЧрд╛ред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг
  MOVI A, 21 ; 00: 10000000 00001101 Loop: HALT ; 01: 00010000 00000000 MOVI B, move ; 02: 10000001 000000mm SUB A, A, B ; 03: 01011000 00001001 AND C, A, 3 ; 04: 01100010 10001011 MOVI Z, C, 1 ; 05: 10010010 00000001 SUB A, A, C ; 06: 01011000 00001010 JMP Loop ; 07: 10000111 00000001 


рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, "рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдВрдЦреНрдпрд╛" рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЕрдкрдиреА рдмрд╛рд░реА рдкрд░ рдЖрдкрдХреЛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЕрдВрджрд░ рдореИрдЪреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдирдХреЛрдб рдХрд░рдирд╛ рдерд╛ред рдЖрдк рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдореИрдЪреЛрдВ рдХреЛ рдЧрд┐рди рдФрд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреБрдЫ рднреА рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВрдиреЗ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ред рдЕрдм рддреАрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ (рдмреА, рд╕реА, рдбреА) рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ 1 рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЙрдирдореЗрдВ рд╕реЗ 0, 1 рдпрд╛ 2 рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╢реЗрд╖ рдЗрдХрд╛рдЗрдпрд╛рдБ рд╡реЗ рдореИрдЪ рд╣реИрдВ рдЬреЛ рд╡рд╣ рд▓реЗрддреА рд╣реИред рдпрджрд┐ рдЖрдк рд╕рднреА рддреАрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ рдЖрдк рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ) рддреЛ рдзреЛрдЦрд╛ рднреА рд╕рдВрднрд╡ рд╣реИред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг
  MOVI A, 21 ; 00: 10000000 00010101 Loop: MOVI B, 1 ; 01: 10000001 00000001 MOVI C, 1 ; 02: 10000010 00000001 MOVI D, 1 ; 03: 10000011 00000001 HALT ; 04: 00010000 00000000 SUB A, A, B ; 05: 01011000 00001001 SUB A, A, C ; 06: 01011000 00001010 SUB A, A, D ; 07: 01011000 00001011 AND C, A, 3 ; 08: 01100010 10001011 MOVI Z, C, 1 ; 09: 10010010 00000001 SUB A, A, C ; 0a: 01011000 00001010 JC Exit ; 0b: 10110111 00001101 JNZ Loop ; 0c: 11100111 00000001 Exit: HALT ; 0d: 00010000 00000000 


рдмреЗрд╢рдХ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреБрдЫ рд╣рдж рддрдХ рд▓рдВрдмрд╛ рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ ROM рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ (рдЕрдм рд╕рдВрднрд╛рд╡рд┐рдд 64 рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ 32 рд╢рдмреНрдж рд╣реИрдВ), рдФрд░ рдЯреЙрдЧрд▓ рд╕реНрд╡рд┐рдЪ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рднреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рддрдм рдЖрдк рдХрдо рд╕реЗ рдХрдо рдЯрд┐рдХ-рдЯреИрдХ-рдЯреЛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/hi421491/


All Articles