рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рд╡рд╛рддрд╛рд╡рд░рдг рд▓рд┐рдЦрдирд╛

рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рди рдЪрд░рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдХрдорд╛рдВрдб рд╕реЗрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (ISA)


рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ:



рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ 2 рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВ):



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


рдореИрдВрдиреЗ MIS рдХреА рддрд░рд╣ RISC рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред


рдореИрдВрдиреЗ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдРрд╕рд╛ рдХрд┐рдпрд╛:


  • рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред
  • рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд╕рднреА рдЬрдЯрд┐рд▓рддрд╛ рдРрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдХреЛрдбрд╛рдВрддрд░рдг рдФрд░ / рдпрд╛ рд╕рдВрдХрд▓рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред

рдпрд╣рд╛рдБ рдореЗрд░реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:


  • рдорд╢реАрди рд╢рдмреНрдж рдФрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдЖрдХрд╛рд░ - 32 рдмрд┐рдЯреНрд╕
  • 64 рд░рдЬрд┐рд╕реНрдЯрд░ ( рдХрдорд╛рдВрдб рдХрд╛рдЙрдВрдЯрд░ рд╕рд╣рд┐рдд)
  • 2 рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢

рд░рдЬрд┐рд╕реНрдЯрд░ рдкреНрд░рдХрд╛рд░ (рдмрд╛рдж рдореЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдкреНрд░рдХрд╛рд░) рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


rtype


рдРрд╕реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рддреАрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред


рддрддреНрдХрд╛рд▓ рдкреНрд░рдХрд╛рд░ :


itype


рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рджреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдФрд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред


рдУрдкреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ (рдпрд╛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рд░рдЬрд┐рд╕реНрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рд░реНрджреЗрд╢)ред


R0 , R1 , R2 рд░рдЬрд┐рд╕реНрдЯрд░ рдирдВрдмрд░ рд╣реИрдВ рдЬреЛ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред


рдлрдВрдХ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝реАрд▓реНрдб рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд░рдЬрд┐рд╕реНрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


Imm рд╡рд╣ рдлрд╝реАрд▓реНрдб рд╣реИ рдЬрд╣рд╛рдБ рдорд╛рди рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред


  • рдХреЗрд╡рд▓ 28 рдирд┐рд░реНрджреЗрд╢

рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдЧрд┐рддреБрдм рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ ред


рдпрд╣рд╛рдБ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ:


nor r0, r1, r2 

NOR рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ r1 рдФрд░ r2 рдкрд░ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдпрд╛ NOT рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╡рд╣ рд░рдЬрд┐рд╕реНрдЯрд░ 00 рдкрд░ рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдЦрддрд╛ рд╣реИред


рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдУрдкреА рдХреНрд╖реЗрддреНрд░ рдХреЛ 0000 рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрди рдлреАрд▓реНрдб рдХреЛ рдмрд╛рдЗрдирд░реА рдирдВрдмрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ 0000000111 рдкрд░ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред


 lw r0, n(r1) 

LW рдПрдХ рддрддреНрдХрд╛рд▓ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬреЛ r1 рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ r1 + n рдкрд░ рдореЗрдореЛрд░реА рд╡реИрд▓реНрдпреВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред


рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрджрд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдУрдкреА рдлрд╝реАрд▓реНрдб рдХреЛ 0111 рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ IMM рдлрд╝реАрд▓реНрдб рдореЗрдВ рдирдВрдмрд░ n рд▓рд┐рдЦреЗрдВред


рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрдб рд▓рд┐рдЦрдирд╛


ISA рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж , рдЖрдк рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдХрд░рдг рд╡рд┐рд╡рд░рдг рднрд╛рд╖рд╛ рдХрд╛ рдЬреНрдЮрд╛рди рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдБ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ:


  • Verilog
  • VHDL (рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рд╣реИ!)

рдореИрдВрдиреЗ рд╡реЗрд░рд┐рд▓реЛрдЧ рдХреЛ рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрд░реЗ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ред


рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛:


  1. рдХрдорд╛рдВрдб рдХрд╛рдЙрдВрдЯрд░ (рдкреАрд╕реА) рдкрд░ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
  2. рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдирд┐рд░реНрджреЗрд╢
  3. рдирд┐рд░реНрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрди
  4. рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдХрдорд╛рдВрдб рдЖрдХрд╛рд░ рдЬреЛрдбрд╝рдирд╛

рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡рд┐рдЬреНрдЮрд╛рдкрди infinitum рдкрд░ред


рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХрдИ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:



рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред


рдлрд╝рд╛рдЗрд▓ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ


рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдлрд╝рд╛рдЗрд▓ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдХреБрдЫ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ 64 рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИрдВред рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдЕрдиреНрдп рджреЛ рдкрд░ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рджреЛ рд╕реЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рд╡рд┐рдХреЛрдбрдХ


рдПрдХ рдбрд┐рдХреЛрдбрд░ рд╡рд╣ рдЗрдХрд╛рдИ рд╣реЛрддреА рд╣реИ рдЬреЛ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ ALU рдФрд░ рдЕрдиреНрдп рдЗрдХрд╛рдЗрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреНрдпрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Addi рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ $ рд╢реВрдиреНрдп рдХрд╛ рдорд╛рди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рд╣рдореЗрд╢рд╛ 0 рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ) рдФрд░ 20 рдбреЙрд▓рд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдбрд╛рд▓рддреЗ рд╣реИрдВред


 addi $t0, $zero, 20 

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдбрд┐рдХреЛрдбрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рд░реНрджреЗрд╢:


  • рддрддреНрдХрд╛рд▓ рдкреНрд░рдХрд╛рд░
  • рдкрд░рд┐рдгрд╛рдо рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛

рдФрд░ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред


ALU


рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдмрд╛рдж ALU рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╕рднреА рдЧрдгрд┐рддреАрдп, рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдЪрд╛рд▓рди, рд╕рд╛рде рд╣реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред


рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рд╣рдо рдПрдХ рд╣реА addi рдирд┐рд░реНрджреЗрд╢ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рд╕реНрддрд░ рдкрд░ 0 рдФрд░ 20 рдХрд╛ рдЬреЛрдбрд╝ рд╣реЛрддрд╛ рд╣реИред


рдЕрдиреНрдп


рдЙрдкрд░реЛрдХреНрдд рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:


  • рд╕реНрдореГрддрд┐ рдореЗрдВ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдмрджрд▓реЗрдВ
  • рд╕рд╢рд░реНрдд рдХреВрджрддрд╛ рд╣реИ

рдпрд╣рд╛рдВ рдФрд░ рд╡рд╣рд╛рдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреЛрдб рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред


рдХреЛрдбрд╛рдВрддрд░рдХ


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


рдореИрдВрдиреЗ рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред


рдЪреВрдБрдХрд┐ рдореЗрд░реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ RISC рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╣реИ, рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рддрд╛рдХрд┐ рдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЫрджреНрдо рдирд┐рд░реНрджреЗрд╢реЛрдВ (рдХрдИ рдкреНрд░рд╛рдердорд┐рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдпрд╛ рдЕрдиреНрдп рдЫрджреНрдо рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди) рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХреВрдБред


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


рдПрдХ рдирд┐рдпрдорд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрдХ рдЦрдВрдб рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред


рджреЛ рдЦрдВрдб .text рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ - рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдФрд░ .data - рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░рд╛ рдбреЗрдЯрд╛ рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:


 .text jie $zero, $zero, $zero #  addi $t1, $zero, 2 # $t1 = $zero + 2 lw $t1, 5($t2) # $t1 = *($t2 + 5) syscall 0, $zero, $zero # syscall(0, 0, 0) la $t1, label# $t1 = label 

рдкрд╣рд▓реЗ, рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдСрдкрд░реЗрдВрдбред


.Data рдореЗрдВ , рдбреЗрдЯрд╛ рдШреЛрд╖рдгрд╛рдПрдБ рдЗрдВрдЧрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред


 .data .byte 23 #   1  .half 1337 #   2  .word 69000, 25000 #   4  .asciiz "Hello World!" #     ( ) .ascii "12312009" #   ( ) .space 45 #  45  

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


рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреЛрдбрд╛рдВрддрд░рдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ (рд╕реНрдХреИрди) рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:


  1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЦрдВрдб рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдВ
  2. рдпрджрд┐ рдпрд╣ рдПрдХ .data рдЦрдВрдб рд╣реИ, рддреЛ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдпрд╛ рдПрдХ .text рдЦрдВрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ
  3. рдпрджрд┐ рдпрд╣ рдПрдХ .text рдЦрдВрдб рд╣реИ, рддреЛ рд╣рдо рдХрдорд╛рдВрдб рдпрд╛ рдПрдХ .data рдЦрдВрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ

рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 2 рдмрд╛рд░ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рд╡рд╣ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХ рдХреНрдпрд╛ рд╣реИрдВ (рд╡реЗ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ), рд╡реЗ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:


  la $s4, loop #   loop  s4 loop: # ! mul $s2, $s2, $s1 # s2 = s2 * s1 addi $s1, $s1, -1 # s1 = s1 - 1 jil $s3, $s1, $s4 #  s3 < s1     

рдФрд░ рджреВрд╕рд░реЗ рдкрд╛рд╕ рдореЗрдВ, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдкрд░рд┐рдгрд╛рдо


рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЖрдк рд╣рдорд╛рд░реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЕрд╕реЗрдВрдмрд▓рд░ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рд╕рд╛рде рд╣реА, рд░реЗрдбреАрдореЗрдб рдЕрд╕реЗрдВрдмрд▓рд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рдж рдореЗрдВ рд╣реИред


рд╕рдВрджрд░реНрдн:


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


All Articles