AVR рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рднрд╛рдЧ 3

тЖР рднрд╛рдЧ 2. рдЖрд░рдВрдн рдХрд░рдирд╛
рднрд╛рдЧ 4. рдкрд░рд┐рдзреАрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрдВрдЯрд░рдкреНрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ тЖТ


AVR рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЛрдб рдЬреЗрдирд░реЗрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА


рднрд╛рдЧ 3. рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрдмреЛрдзрди рдФрд░ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг


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


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкрд╣рд▓реЗ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд░рдЬрд┐рд╕реНрдЯрд░ рдЪрд░ рдХреА рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЗрдореЛрд░реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рдЪрд░реНрдЪрд╛ рдкрд░ рд╕реАрдзреЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдбреЗрдЯрд╛ рд╡рд┐рд╡рд░рдг рдХреЗ рдПрдХ рдФрд░ рд╡рд░реНрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред AVR рдореЗрдЧрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрдорд╛рдВрдб рдХреЗрд╡рд▓ рд░рдЬрд┐рд╕реНрдЯрд░ рдСрдкрд░реЗрдВрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рджреЛрдиреЛрдВ рдСрдкрд░реЗрдВрдбреНрд╕ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЖрдХрд╛рд░ рдореЗрдВ 8 рдмрд┐рдЯреНрд╕ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕реЗ рдХрдИ рдСрдкрд░реЗрд╢рди рд╣реИрдВ рдЬрд╣рд╛рдВ рджреЛ рд▓рдЧрд╛рддрд╛рд░ рдЖрд░рдУрдПрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ 16-рдмрд┐рдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рдХреБрдЫ рдСрдкрд░реЗрд╢рди рд╣реИрдВ, рдФрд░ рд╡реЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИрдВред


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


var m = new Mega328(); var dr1 = m.DREG(); var dr2 = m.DREG(); dr1.Load(0xAA55); dr2.Load(0x55AA); dr1++; dr1--; dr1 += 0x100; dr1 += dr2; dr2 *= dr1; dr2 /= dr1; var t = AVRASM.Text(m); 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ DREG () рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдЬреЛрдбрд╝реЗ рдореЗрдВ рд╕реНрдерд┐рдд рджреЛ 2-рдмрд╛рдЗрдЯ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдПред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рд╕реМрдВрдкрд╛ рдФрд░ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдЬреЛрдбрд╝реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛рдлреА рд╣рдж рддрдХ рдПрдХ рдирд┐рдпрдорд┐рдд рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдЬреЛрдбрд╝реА рдХреЛ рджреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рд╡рд╛рд▓реЗ рдПрдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ 8-рдмрд┐рдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдКрдкрд░реА 8 рдмрд┐рдЯреНрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЛ 8-рдмрд┐рдЯ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдирд┐рдореНрди 8 рдмрд┐рдЯреНрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рд╕рдВрдкрддреНрддрд┐ред рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛


 var m = new Mega328(); var dr1 = m.DREG(); dr1.Load(0xAA55); dr1.Low--; dr1.High += dr1.Low; var t = AVRASM.Text(m); 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рд╣рд╛рдИ рдФрд░ рд▓реЛ рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдВрддреНрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдЪрд╛рд▓рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред


рдЕрдм рдЬрдм рд╣рдо рдбрдмрд▓-рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓реЗ рдЪрд░ рд╕рдордЭ рдЧрдП рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдореГрддрд┐ рдореЗрдВ рдЪрд░ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдкрдХреЛ 8, 16-рдмрд┐рдЯ рдЪрд░ рдФрд░ рдордирдорд╛рдиреА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд░реИрдо рдореЗрдВ рдЪрд░ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред


 var m = new Mega328(); var bt = m.BYTE(); //8-    var wd = m.WORD(); //16-    var arr = m.ARRAY(16); //  16  var t = AVRASM.Text(m); 

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХреНрдпрд╛ рд╣реБрдЖред


 RESET: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 .DSEG L0002: .BYTE 16 L0001: .BYTE 2 L0000: .BYTE 1 

рдбреЗрдЯрд╛ рдбреЗрдлрд┐рдирд┐рд╢рди рд╕реЗрдХреНрд╢рди рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореЗрдореЛрд░реА рдПрд▓реЛрдХреЗрд╢рди рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрд╡рдВрдЯрди рдЖрджреЗрд╢ рдЪрд░ рдХреА рдШреЛрд╖рдгрд╛ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдпрд╣ рдХреЛрдИ рд╕рдВрдпреЛрдЧ рдирд╣реАрдВ рд╣реИред рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдХрд╛ рдЖрд╡рдВрдЯрди рдирд┐рдореНрди рдорд╛рдирджрдВрдб (рдорд╣рддреНрд╡ рдХреЗ рдШрдЯрддреЗ рдХреНрд░рдо рдореЗрдВ) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдЫрдВрдЯрдиреА рдХреЗ рдмрд╛рдж рд╣реЛрддрд╛ рд╣реИред рдЕрдзрд┐рдХрддрдо 2 рдбрд┐рдЧреНрд░реА рдХрд╛ рдЕрдзрд┐рдХрддрдо рднрд╛рдЬрдХ тЖТ рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдХрд╛ рдЖрдХрд╛рд░ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо 64 рдПрд░реЗ, 48,40 рдФрд░ 16 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ 4 рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдЖрдХрд╛рд░ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрд╡рдВрдЯрди рдЖрджреЗрд╢, рдШреЛрд╖рдгрд╛ рдЖрджреЗрд╢ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:


рд▓рдВрдмрд╛рдИ 64 - рдбрд┐рдЧреНрд░реА 2 = 64 рдХреЗ рдЕрдзрд┐рдХрддрдо рднрд╛рдЬрдХ рдЧреБрдгрдХ
рд▓рдВрдмрд╛рдИ 48 - рдбрд┐рдЧреНрд░реА 2 = 16 рдХреЗ рдЕрдзрд┐рдХрддрдо рднрд╛рдЬрдХ рдЧреБрдгрдХ
рд▓рдВрдмрд╛рдИ 16 - рдбрд┐рдЧреНрд░реА 2 = 16 рдХреА рдЕрдзрд┐рдХрддрдо рднрд╛рдЬрдХ рдХрдИ
рд▓рдВрдмрд╛рдИ 40 - рдбрд┐рдЧреНрд░реА 2 = 8 рдХреЗ рдЕрдзрд┐рдХрддрдо рднрд╛рдЬрдХ рдЧреБрдгрдХ
рдпрд╣ рд╕рд░рдгреА рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдФрд░ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдХреЛрдб рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░реЗрдВред рд╣рдо рдореЗрдореЛрд░реА рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдСрдкрд░реЗрд╢рди рд╕реАрдзреЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд╡рд╣ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдореЗрдореЛрд░реА рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯ рдПрдбреНрд░реЗрд╕рд┐рдВрдЧ рд╣реИред


 var m = new Mega328(); var bt = m.BYTE(); // 8-    var rr = m.REG(); //    rr.Load(0xAA); //  rr   0xAA rr.Mstore(bt); //     rr.Clear(); //  rr.Mload(bt); //    var t = AVRASM.Text(m); 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рдЪрд░ рдФрд░ рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ 0x55 рдорд╛рди рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ред рдлрд┐рд░ рдорд┐рдЯ рдЧрдП рдФрд░ рд╡рд╛рдкрд╕ рдмрд╣рд╛рд▓ рд╣реЛ рдЧрдПред


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


 var rr = m.REG(); var arr = m.ARRAY(10); rr.MLoad(arr[5]); 

рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 0. рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рд░рдгреА рддрддреНрд╡ рдХрд╛ рдорд╛рди 6 рд╕реЗрд▓ рдЖрд░рдЖрд░ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред


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


 var m = new Mega328(); var bt1 = m.BYTE(); var bt2 = m.BYTE(); var rr = m.REG(); var ptr = m.MEMPTR(); //  ptr ptr.Load(bt1); //ptr   bt1 rr.Load(0xAA); // rr - 0xAA ptr.MStore(rr); //  bt1 0xAA rr.Load(0x55); // rr - 0x55 ptr.Load(bt2); //ptr   bt2 ptr.MStore(rr); //  bt2 0x55 ptr.Load(bt1); //ptr   bt1 ptr.MLoad(rr); //  rr  0xAA var t = AVRASM.Text(m); 

рдпрд╣ рдЙрд╕ рдкрд╛рда рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд╣рд▓реЗ ptr рдкреЙрдЗрдВрдЯрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдСрдкрд░реЗрд╢рди рд▓рд┐рдЦрд╛ рдФрд░ рдкрдврд╝рд╛ред рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХрдорд╛рдВрдб рдореЗрдВ рд░реАрдб / рд░рд╛рдЗрдЯ рдПрдбреНрд░реЗрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рд░реАрдб / рд░рд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди рдХреЛ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ / рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рджреЗрдЦреЗрдВ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рднрд░ рд╕рдХрддрд╛ рд╣реИред


 var m = new Mega328(); var bt1 = m.ARRAY(4); //   4  var rr = m.REG(); var ptr = m.MEMPTR(); ptr.Load(bt1.Label); //ptr   bt1 rr.Load(0xAA); // rr - 0xAA ptr.MStoreInc(rr); //  bt1 0xAA ptr.MStoreInc(rr); //  bt1+1 0xAA ptr.MStoreInc(rr); //  bt1+2 0xAA ptr.MStoreInc(rr); //  bt1+3 0xAA rr.Clear(); rr.MLoad(bt1[2]); //  rr 3-   var t = AVRASM.Text(m); 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдореЗрдореЛрд░реА рд▓рд┐рдЦрддреЗ рд╕рдордп рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдпрд╛ред
рдЕрдЧрд▓рд╛, рд╣рдо рдЖрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдХреНрд╖рдорддрд╛ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдЖрд╕рд╛рди рд╣реИ, рддреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╢рд░реНрдд рдФрд░ рдмрд┐рдирд╛ рд╢рд░реНрдд рдХреВрдж рдФрд░ рд▓реВрдк рдХреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░реЗрдВред рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд▓реЗрдмрд▓ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд▓реЗрдмрд▓ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐ AVRASM.Label рдЯреАрдо рдХреЗ рд╕рд╛рде рд╣рдо рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдмрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдЧреЗ рдХреА рдЫрд▓рд╛рдВрдЧ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЬрдВрдк рдХрдорд╛рдВрдб рдХреЛ рд▓реЗрдмрд▓ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЛрдб рдХреЛ рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛрдб рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдорд╛рдВрдб AVRASM.newLabel ([рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд▓реЗрдмрд▓ рдХрд╛ рдЪрд░) рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд▓реЗрдмрд▓ рд╕реЗрдЯ рдХрд░рдХреЗ рдФрд░ рдПрдХ рдорд╛рди AVRASM.newLabel () рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЪрд░ рдХреЗ рд╕рд╛рде рдЕрд╕рд╛рдЗрди рдХрд░рдХреЗ рдПрдХ рд╕рд░рд▓ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рд╕рдВрдХреНрд░рдордг рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░рдХрд╛рд░ рдПрдХ рдмрд┐рдирд╛ рд╢рд░реНрдд рд╕рдВрдХреНрд░рдордг рд╣реИред рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо GO ([jump_mark]] рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред


 var m = new Mega328(); var r = m.REG(); //  var lbl1 = AVRASM.Label;//        m.GO(lbl1); r++; //    r++; AVRASM.NewLabel(lbl1);//  //  var lbl2 = AVRASM.NewLabel();//    r--; //    r--; m.GO(lbl2); var t = AVRASM.Text(m); 

рд╕рд╢рд░реНрдд рд╕рдВрдХреНрд░рдордг рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рд╣реЛрддрд╛ рд╣реИред рдЙрдирдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдСрдкрд░реЗрд╢рди рдХреЗ рдЭрдВрдбреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рд▓рд╛рдпрдмреНрд░реЗрд░реА IF рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдЖрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред


 var m = new Mega328(); var rr1 = m.REG(); var rr2 = m.REG(); rr1.Load(0x22); rr2.Load(0x33); m.IF(rr1 == rr2, () => { AVRASM.Comment(" - ,  "); }); var t = AVRASM.Text(m); 

рдЪреВрдВрдХрд┐ IF рдХрдорд╛рдВрдб рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛рдлреА рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдкрд╣рд▓рд╛ рддрд░реНрдХ рд╕рдВрдХреНрд░рдордг рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╣ рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рдмреНрд▓реЙрдХ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╢рд░реНрдд рдкреВрд░реА рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╢рд╛рдЦрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХреЛрдб рдХрд╛ рдПрдХ рдмреНрд▓реЙрдХ рдЬрд┐рд╕реЗ рд╢рд░реНрдд рдкреВрд░реА рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдк AVRASM.Comment () рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рдЕрд╕реЗрдВрдмрд▓рд░ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред


 var m = new Mega328(); var rr1 = m.REG(); var rr2 = m.REG(); rr1.Load(0x22); rr2.Load(0x33); m.IF(rr1 == rr2, () => { AVRASM.Comment(" - ,  "); },()=> { AVRASM.Comment(" - ,   "); }); AVRASM.Comment(" "); 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 ldi R0000,34 ldi R0001,51 cp R0000,R0001 brne L0002 ;---  - ,   --- xjmp L0004 L0002: ;---  - ,    --- L0004: ;---   --- .DSEG 

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


 var m = new Mega328(); var rr1 = m.REG(); rr1.Load(0x22); rr1--; m.IFEMPTY(() =>AVRASM.Comment(",    0")); var t = AVRASM.Text(m); 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, IFEMPTY рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╡реГрджреНрдзрд┐ рдХреЗ рдмрд╛рдж Z рдзреНрд╡рдЬ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ 0 рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рд╕рд╢рд░реНрдд рдмреНрд▓реЙрдХ рдХреЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реА рдХреЛ LOOP рдлрд╝рдВрдХреНрд╢рди рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрдХреНрд░реЛрдВ рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИред рдЙрд╕рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ


 LOOP(Register iter, Action<Register, string> Condition, Action<Register, string> body) 

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


 m.LOOP(m.TempL, (r, l) => m.GO(l), (r,l) => { }); 

рд╕рдВрдХрд▓рди рдкрд░рд┐рдгрд╛рдо рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


 L0002: xjmp L0002 

рдЖрдЗрдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдХреЛ рднрд░рдиреЗ рдХреЗ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдмрджрд▓ рджреЗрдВ рддрд╛рдХрд┐ рднрд░рдиреЗ рдХреЛ рдПрдХ рд▓реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдП


 var m = new Mega328(); var rr1 = m.REG(); var rr2 = m.REG(); var arr = m.ARRAY(16); var ptr = m.MEMPTR(); ptr.Load(arr[0]); //     rr2.Load(16); //    rr1.Load(0xAA); //   m.LOOP(rr2, (r, l) => //rr2     . { r--; //   m.IFNOTEMPTY(l); // ,   }, (r,l) => ptr.MStoreInc(rr1)); //   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 ldi YL, LOW(L0002+0) ldi YH, HIGH(L0002+0) ldi R0001,16 ldi R0000,170 L0003: st Y+,R0000 dec R0001 brne L0003 L0004: .DSEG L0002: .BYTE 16 

рд╕рдВрдХреНрд░рдордг рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рд╕рдВрдХреНрд░рдордг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред рдЙрдирдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдирд┐рдХрдЯрддрдо рдПрдирд╛рд▓реЙрдЧ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реВрдЪрдХ рд░реИрдо рд╕реНрдерд╛рди рдХреЛ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЛред рдЪреВрдВрдХрд┐ AVR рдореЗрдВ рд╣рд╛рд░реНрд╡рд░реНрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╣реИ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП ROMPtr рдХреЛ MEMPtr рдХреЗ рдмрдЬрд╛рдп рд╕реВрдЪрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


 var m = new Mega328(); var block1 = AVRASM.Label; var block2 = AVRASM.Label; var block3 = AVRASM.Label; var ptr = m.ROMPTR(); ptr.Load(block1); //     var loop = AVRASM.NewLabel(); AVRASM.Comment("   "); m.GOIndirect(ptr); //   ,     AVRASM.NewLabel(block1); AVRASM.Comment("  1"); ptr.Load(block2); m.GO(loop); AVRASM.NewLabel(block2); AVRASM.Comment("  2"); ptr.Load(block3); m.GO(loop); AVRASM.NewLabel(block3); AVRASM.Comment("  3"); ptr.Load(block1); m.GO(loop); var t = AVRASM.Text(m); 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдорд╛рдВрдб рдХреЗ 3 рдмреНрд▓реЙрдХ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, рдирд┐рдпрдВрддреНрд░рдг рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рд╢рд╛рдЦрд╛ рдХрдорд╛рди рдХреЛ рд╡рд╛рдкрд╕ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдХрдорд╛рдВрдб рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдо рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдП рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рд╡реЗрдХреНрдЯрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рдмреНрд▓реЙрдХ 1 тЖТ рдмреНрд▓реЙрдХ 2 тЖТ рдмреНрд▓реЙрдХ 3 тЖТ рдмреНрд▓реЙрдХ 1 ... рдФрд░ рдЗрд╕реА рддрд░рд╣ рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ рджрд┐рдЦреЗрдЧрд╛ред рдпрд╣ рдХрдорд╛рдВрдб, рд╕рд╢рд░реНрдд рд╢рд╛рдЦрд╛ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде, рднрд╛рд╖рд╛ рдХреЗ рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рд╛рдзрдиреЛрдВ рдХреЛ рд░рд╛рдЬреНрдп рдорд╢реАрди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬрдЯрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рд╢рд╛рдЦрд╛ рдХрд╛ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг SWITCH рдХрдорд╛рдВрдб рд╣реИред рдпрд╣ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд░рдордг рд▓реЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рд╕реНрдореГрддрд┐ рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдХреНрд░рдордг рд▓реЗрдмрд▓ рдХрд╛ рдкрддрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред


 var m = new Mega328(); var block1 = AVRASM.Label; var block2 = AVRASM.Label; var block3 = AVRASM.Label; var arr = m.ARRAY(6); var ptr = m.MEMPTR(); //    m.Temp.Load(block1); m.Temp.Store(arr[0]); m.Temp.Load(block2); m.Temp.Store(arr[2]); m.Temp.Load(block3); m.Temp.Store(arr[4]); ptr.Load(arr[0]); //     var loop = AVRASM.NewLabel(); m.SWITCH(ptr); //   ,     AVRASM.NewLabel(block1); AVRASM.Comment("  1"); ptr.Load(arr[2]); //       m.GO(loop); AVRASM.NewLabel(block2); AVRASM.Comment("  2"); m.Temp.Load(block3); ptr.MStore(m.Temp); //       m.GO(loop); AVRASM.NewLabel(block3); AVRASM.Comment("  3"); ptr.Load(arr[0]); //       m.GO(loop); 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рдВрдХреНрд░рдордг рдХреНрд░рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛: рдмреНрд▓реЙрдХ 1 тЖТ рдмреНрд▓реЙрдХ 2 тЖТ рдмреНрд▓реЙрдХ 3 тЖТ рдмреНрд▓реЙрдХ 3 тЖТ рдмреНрд▓реЙрдХ 3 тЖТ рдмреНрд▓реЙрдХ 3 тЖТ рдмреНрд▓реЙрдХ 3 тЖТ рдмреНрд▓реЙрдХ 1 ... рд╣рдо рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рдЬрд┐рд╕рдореЗрдВ рдмреНрд▓реЙрдХ 2 рдХрдорд╛рдВрдб рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдЪрдХреНрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред


рдкреЛрд╕реНрдЯ рдХреЗ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдкрд░рд┐рдзреАрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ, рд╡реНрдпрд╡рдзрд╛рдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ, рджрд┐рдирдЪрд░реНрдпрд╛ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

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


All Articles