тЖР рднрд╛рдЧ 1. рдкрд╣рд▓реЗ рдкрд░рд┐рдЪрд┐рдд
рднрд╛рдЧ 3. рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрдмреЛрдзрди рдФрд░ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг тЖТ
AVR рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЛрдб рдЬреЗрдирд░реЗрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
рднрд╛рдЧ 2. рдЖрд░рдВрдн рдХрд░рдирд╛
рдЬреИрд╕рд╛ рдХрд┐ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА, рдЗрд╕ рднрд╛рдЧ рдореЗрдВ рд╣рдо NanoRTOS рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдкреЛрд╕реНрдЯ рд╕реЗ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рд╡реЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдпреЛрдЬрд┐рдд рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕реАрдорд┐рдд рджрд╛рдпрд░реЗ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдореНрдорд╛рдирд┐рдд рдкрд╛рдардХ рдХрдо рд╕реЗ рдХрдо C # рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдкрд░рд┐рдЪрд┐рдд рд╣реИ, рдФрд░ рдореЗрдЧрд╛ рд╕реАрд░реАрдЬ AVR рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рд╕рдордЭ рднреА рд╣реИред
рдХрд┐рд╕реА рднреА рддрдХрдиреАрдХ рдХрд╛ рдЕрдзреНрдпрдпрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ https://drive.google.com/open?id=1FfBBpxlJkWC027ikYpn6NXbOGp7n-5B рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЙрджрд╛рд╣рд░рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рднреА C # рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рдпреВрдирд┐рдЯрдЯреЗрд╕реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЛ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рдХреЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд╛рда рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рд╣рдореЗрд╢рд╛ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдЬреИрд╕реА рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдВрдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдкрд░рд┐рдзреАрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╕реЗрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдкрд╕рдВрдж рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛрдб рдХреЗ рдЧрдарди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИред рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдШреЛрд╖рдгрд╛ рд░реЗрдЦрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ
var m = new Mega328();
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдкрд╛рд▓рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдШрдбрд╝реА рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд░реАрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдкреЛрд░реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреА рд╣реИред рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИрдВ, рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдЬрдм рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдШрдбрд╝реА рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ
m.FCLK = 16000000; m.CKDIV8 = false;
рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдЧреБрдВрдЬрдпрдорд╛рди рдпрдВрддреНрд░ рдпрд╛ рдПрдХ рдмрд╛рд╣рд░реА рд╕реНрд░реЛрдд рджреНрд╡рд╛рд░рд╛ 16 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдзреАрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡реГрддреНрддрд┐ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреА рд╣реИред
AVRASM рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдХрд╛ рдкрд╛рда рдХрд╛рд░реНрдп рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЛрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рдХреЛрдбрд╛рдВрддрд░рдХ рд░реВрдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдирд┐рдпрдВрддреНрд░рдХ рд╡рд░реНрдЧ рдХрд╛ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЙрджрд╛рд╣рд░рдг, рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдврд╛рдВрдЪрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд▓реЗрддрд╛ рд╣реИ
var m = new Mega328();
рдпрджрд┐ рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдИ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдкрд░рд┐рдгрд╛рдо рдХреА рдирд┐рд░рд░реНрдердХрддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдлрд┐рд░ рднреА рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛрдИ рд░реИрдкрд┐рдВрдЧ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реАрдЦрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЦрд╛рд▓реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдЕрдм рдЗрд╕рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЖрджрд┐рдо рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдо рдПрдХ рдордирдорд╛рдирд╛ рдЖрд░рдУрдПрди рд╕реЗрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рдЖрда-рдмрд┐рдЯ рдЪрд░ рдХреА рд╡реГрджреНрдзрд┐ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдХреЛрдбрд╛рдВрддрд░рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ inc [рд░рдЬрд┐рд╕реНрдЯрд░] рдХрдорд╛рдВрдб рд╣реИред рд╣рдорд╛рд░реА рдЦрд░реАрдж рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрдиреЗрдВ рдбрд╛рд▓реЗрдВ
var r = m.REG(); r++;
рдЯреАрдореЛрдВ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИред рдкрд╣рд▓рд╛ рдХрдорд╛рдВрдб рд╡реЗрд░рд┐рдПрдмрд▓ r рдХреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдХрдорд╛рдВрдб рдЗрд╕ рдЪрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд╣рд▓рд╛ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИред
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF R0000 = r20 inc R0000 .DSEG
рдПрдХ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдЪрд╛рд░ рдХрдорд╛рдВрдб рд╕реНрдЯреИрдХ рдкреЙрдЗрдВрдЯрд░ рдХреА рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╣реИрдВред рдЕрдЧрд▓рд╛ рдЪрд░ рдирд╛рдо рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдорд╛рд░рд╛ рдЗрдВрдХ , рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрддрд┐рд░рд┐рдХреНрдд рдХреБрдЫ рднреА рдирд╣реАрдВ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╕реНрдЯреИрдХ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛ред рдЗрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╕рдордп рдЬреЛ рдкреНрд░рд╢реНрди рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣ R0000 рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ ? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ r рдирд╛рдо рдХрд╛ рдПрдХ рдЪрд░ рд╣реИ? C # рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛рдлреА рд╕рдЪреЗрдд рдФрд░ рдХрд╛рдиреВрдиреА рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╕реНрдХреЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдХреЛрдбрд╛рдВрддрд░рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рднреА рд▓реЗрдмрд▓ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдирд╛рдореЛрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдмрд╛рдзреНрдп рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдирд╛рдореЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЬрд╣рд╛рдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрднреА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рдЪреЗрдд рдирд╛рдо рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд┐рд▓ рд╕рдХреЗред рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред M.REG ("r" ) рдХреЗ рд╕рд╛рде m.REG () рдмрджрд▓реЗрдВ рдФрд░ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF r = r20 inc r .DSEG
рддреЛ, рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдирд╛рдордХрд░рдг рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЪрд╛рдирдХ рд░рдЬрд┐рд╕реНрдЯрд░ 20 рд╕реЗ рдХреНрдпреЛрдВ рд╕реМрдВрдкрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛, рдФрд░ 0 рд╕реЗ рдирд╣реАрдВ? рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ 16 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░, рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЕрд╡рд╕рд░ рд╣реИред рдФрд░ рдЪреВрдВрдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдмрд╣реБрдд рдорд╛рдВрдЧ рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдиреБрдХреВрд▓рди рдЕрд╡рд╕рд░реЛрдВ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдКрдкрд░реА рдЖрдзреЗ рд╕реЗ рд╡рд┐рддрд░рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╕рднреА рдПрдХ рд╣реА рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ - рд╕реА 20 рдФрд░ 16 рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛрдб рдореЗрдВ рдХрдИ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЕрд╕реНрдерд╛рдпреА рднрдВрдбрд╛рд░рдг рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ 16 рд╕реЗ 19 рддрдХ 4 рд╕реЗрд▓ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреБрд░реНрдЧрдо рд╣реЛ рдЧрдП рд╣реИрдВред рдпрд╣ рдмрд╕ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕рдЪреЗрдд рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕реАрдорд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реЛред рд╣рдо рдХреЛрдб рд╕реЗ рд░рдЬрд┐рд╕реНрдЯрд░ r рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдХрд╛ рд╕реНрдерд╛рди рд▓реЗрддреЗ рд╣реИрдВ
m.TempL ++;
рдЪрд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 inc TempL .DSEG
рдпрд╣рд╛рдВ, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЛ рд╡рд┐рдХрд╛рд╕ рдкреИрдХреЗрдЬ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ Common.inc рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╣реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдореИрдХреНрд░реЛ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рднрдВрдбрд╛рд░рдг рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд╛рдо рдорд┐рд▓рд╛рди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЕрд░реНрдерд╛рддреН, TempL = r16, TempH = r17, TempQL = r18, TempQH = r19ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рднреА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЯреЗрдореНрдкрд▓ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╣рдорд╛рд░рд╛ рдирд┐рд░реНрдгрдп рдХрд╛рдлреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред рдФрд░ рд╣рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░ рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдХреЛрдИ рднреА рдХрд╛рдо рдЪрдордХ рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рдо рдЙрд╕ рдкрд░ рдКрдкрд░реА рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреА рдХреАрдорддреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рд╣рдорд╛рд░реА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдмрджрд▓ рдХрд░ var r = m.REGL ("r") рдкрд░ рд▓реМрдЯрд╛рдПрдБ; рдФрд░ рд╢реНрд░рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF r = r4 inc r .DSEG
рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рд╣рдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реА рд░рд╛рдп рдореЗрдВ, рдЪрд░ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЧреЗ рдЪрд▓рддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдПрдХ рд╕рд╛рде рдХрдИ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рджреЛ рдмрд╛рд░ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдирдП рдЪрд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ, рдФрд░ 1 рд╕реЗ рджреВрд╕рд░реЗ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдХрдо рдХрд░реЗрдВрдЧреЗред рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
var m = new Mega328(); var r = m.REGL("r"); r++; var rr = m.REGL("rr"); rr--; var rrr = m.REGL("rrr"); rrr.Clear(); var t = AVRASM.Text(m); . RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF r = r4 inc r .DEF rr = r5 dec rr .DEF rrr = r6 clr rrr .DSEG
рдЕрджреНрднреБрддред рдпрд╣реА рдирд┐рд╡реЗрджрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЧрд░ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рд╣рдо рдЕрдиреНрдп рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдХреИрд╕реЗ рдореБрдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЕрдм рддрдХ рд╕рдм рдХреБрдЫ рд╣рд╛рде рд╕реЗ рд╣реИред рдХреЛрдб рдЬрдирд░реЗрд╢рди рдореЛрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рджреЗрд╢ рдЬрд╛рдиреЗ рдкрд░ рджреГрд╢реНрдпрддрд╛ рдХреА рд╕реАрдорд╛рдУрдВ рдФрд░ рдЪрд░ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░рд┐рд▓реАрдЬрд╝ рдкрд░ C # рдирд┐рдпрдо рдЕрднреА рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрдк рд╕реЗрд▓ рдХреЛ рдХреИрд╕реЗ рдореБрдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВред
var m = new Mega328(); var r = m.REGL("r"); r++; var rr = m.REGL("rr"); rr--; r.Dispose(); var rrr = m.REGL("rrr"); rrr.Clear(); var t = AVRASM.Text(m);
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF r = r4 inc r .DEF rr = r5 dec rr .UNDEF r .DEF rrr = r4 clr rrr .DSEG
рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЬрд┐рд╕ рдЪреМрдереЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдореБрдХреНрдд рдХрд┐рдпрд╛ рд╡рд╣ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдпрд╛ред рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛ рдЪрд░ рдШреЛрд╖рдгрд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдкрдХрдбрд╝рддреА рд╣реИ, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╕рдордп рдкрд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрдм рд╡реЗ рджреБрд░реНрд▓рдн рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдкрд░ рдпреВрдирд┐рдХрд╛рд╕реНрдЯ рд╕рдВрдЪрд╛рд▓рди рдХреИрд╕реЗ рдХрд░реЗрдВред рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЪреАрдЬреЗрдВ рдХреИрд╕реА рд╣реИрдВред рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЕрдзрд┐рдХрддрдо рджреЛ-рдПрдбреНрд░реЗрд╕ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдВрдХреНрд╖рд╛рд░рдХ рдХреЗ рд▓рд┐рдП, рджреЛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рдирд┐рд╢реНрдЪрд┐рдд рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рдСрдкрд░реЗрд╢рди рдореЗрдВ рдкрд╣рд▓реЗ рдСрдкрд░реЗрдВрдб рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╕рд┐рдВрдЯреИрдХреНрд╕ [рд░рдЬрд┐рд╕реНрдЯрд░ 1] [рдСрдкрд░реЗрд╢рди] = [рд░рдЬрд┐рд╕реНрдЯрд░ 2] рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдЖрдЗрдП рджреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
var m = new Mega328(); var op1 = m.REG(); var op2 = m.REG(); op1 += op2; var t = AVRASM.Text(m);
рдирддреАрдЬрддрди, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF R0000 = r20 .DEF R0001 = r21 add R0000,R0001 .DSEG
рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЙрдореНрдореАрдж рдереА рд╡реЛ рдорд┐рд▓ рдЧрдпрд╛ред рдЖрдк рд╕реНрд╡рдпрдВ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ -, &, | рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдмрджрддрд░ рдирд╣реАрдВ рд╣реИред
рдЕрдм рддрдХ, рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд░рд▓рддрдо рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрднреА рддрдХ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг рдкрд░ рдЦреБрдж рдХреЛ рдирд╣реАрдВ рдЫреБрдЖ рд╣реИред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЖрдкрдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдПрдХ рд╕реНрдерд┐рд░, рджреВрд╕рд░реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдореВрд▓реНрдп, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рд░реИрдо рдореЗрдореЛрд░реА рд╕реЗрд▓ рдХреЗ рдореВрд▓реНрдп, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрддреЗ рдкрд░ рд╕реНрдерд┐рдд рд░реИрдо рдореЗрдореЛрд░реА рд╕реЗрд▓ рдХреЗ рдорд╛рди, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрддреЗ рдкрд░ рд╕реНрдерд┐рдд рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рд╕реЗрд▓ рдХреЗ рдореВрд▓реНрдп, рд╕рд╛рде рд╣реА рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА рд╕реЗрд▓ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд░рдЬрд┐рд╕реНрдЯрд░ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЬреЛрдбрд╝реА рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдмрд╛рдж рдореЗрдВ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рд╕рд░рд▓ рдорд╛рдорд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗред
var m = new Mega328(); var op1 = m.REG(); var op2 = m.REG(); op1.Load(0x10); op2.Load('s'); op1.Load(op2); var t = AVRASM.Text(m);
рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреНрд░рддреАрдХ рдХреЗ рд╕рд╛рде рджреЛ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдФрд░ рдЖрд░рдВрдн рдХрд┐рдП, рдФрд░ рдлрд┐рд░ рд╣рдордиреЗ рдЪрд░ op2 рдХреЗ рдорд╛рди рдХреЛ рдХреЛрд╢рд┐рдХрд╛ op1 рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╕рдВрдЦреНрдпрд╛ 0-255 рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рди рд╣реЛред рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF R0000 = r20 .DEF R0001 = r21 ldi R0000,16 ldi R0001,'s' mov R0000,R0001 .DSEG
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕реВрдЪреАрдмрджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЦреБрдж рдХреЛрдбрд╛рдВрддрд░рдХ рдХрдорд╛рдВрдб рдХрд╛ рд╕рд╣реА рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рдмрд╛рд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЙрдбреА рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рд╕реАрдзрд╛ рд▓реЛрдбрд┐рдВрдЧ рдХреЗрд╡рд▓ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдКрдкрд░реА рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЖрдЗрдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдмрджрд▓рдХрд░ рд╣рдорд╛рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рдПрдВ рддрд╛рдХрд┐ рдпрд╣ рдирд┐рдЪрд▓реЗ рдЖрдзреЗ рд╕реЗ рдЪрд░ рдХреЗ рд▓рд┐рдП рд░рдЬрд┐рд╕реНрдЯрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗред
var m = new Mega328(); var op1 = m.REGL(); var op2 = m.REGL(); op1.Load(0x10); op2.Load('s'); op1.Load(op2); var t = AVRASM.Text(m);
рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF R0000 = r4 .DEF R0001 = r5 ldi TempL,16 mov R0000,TempL ldi TempL,'s' mov R0001,TempL mov R0000,R0001 .DSEG
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдиреЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЯреАрдореЛрдВ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдЦрд░реНрдЪ рдХрд░рдирд╛ред рдФрд░ рдЙрд╕реА рд╕рдордп рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╣рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рднрдВрдбрд╛рд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдареАрдХ рд╣реИ, рдЕрдВрдд рдореЗрдВ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдгрд┐рдд рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рд░рдЬрд┐рд╕реНрдЯрд░ рд╕реЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдШрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдк рдЕрд╕реЗрдВрдмрд▓рд░ рдХрдорд╛рдВрдб рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдЕрдм рд╣рдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред
var m = new Mega328(); var op1 = m.REG(); op1.Load(0x10); op1 -= 10; var t = AVRASM.Text(m);
рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF R0000 = r20 ldi R0000,16 subi R0000,0x0A .DSEG
рдпрд╣ рдирд┐рдХрд▓рд╛ред рдФрд░ рдЕрдЧрд░ рдХреЛрдИ рдЕрд╕реЗрдВрдмрд▓рд░ рдХрдорд╛рдВрдб рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдСрдкрд░реЗрд╢рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧреА? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдШрдЯрд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЪрд▓реЛ рдХреЛрд╢рд┐рд╢ рдХрд░реЛ рдФрд░ рджреЗрдЦреЛ
var m = new Mega328(); var op1 = m.REG(); op1.Load(0x10); op1 += 10; var t = AVRASM.Text(m);
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF R0000 = r20 ldi R0000,16 subi R0000,0xF6 .DSEG
рдЛрдгрд╛рддреНрдордХ рдорд╛рди рдШрдЯрд╛рдХрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рдХрд▓ рдЧрдИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рдЪреАрдЬреЗрдВ рд╣реЛ рд░рд╣реА рд╣реИрдВред рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ 5 рд╕реЗ рджрд╛рдИрдВ рдУрд░ рд╢рд┐рдлреНрдЯ рдХрд░реЗрдВред
var m = new Mega328(); var op1 = m.REG(); op1.Load(0x10); op1 >>= 5; var t = AVRASM.Text(m);
рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛
RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DEF R0000 = r20 ldi R0000,16 swap R0000 andi R0000,15 lsr R0000 .DSEG
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ 5 рдЯреАрдореЛрдВ рдХреЛ рддреЗрдЬреА рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИ рдЕрдЧрд░ рдкрд╛рдВрдЪ рд╢рд┐рдлреНрдЯ рдЯреАрдореЛрдВ рдХреЗ рд▓рд▓рд╛рдЯ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ред
рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдордиреЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдЕрдВрдХрдЧрдгрд┐рдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдВрдЪ рдХреАред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди (рд▓реВрдк, рд╕рдВрдХреНрд░рдордг, рдЖрджрд┐) рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред