ВУЗ:
Составители:
19
sbrc flag, 0 ; ɩɪɨɩ. ɜɨɡɜɪɚɬ, ɟɫɥɢ ɧɟɬ ɮɥɚɝɚ ɡɚɜɟɪɲɟɧɢɹ (ɟɳɟ ɧɟ ɜɫɟ
; ɫɢɦɜɨɥɵ ɩɪɢɧɹɬɵ)
reti
sbrc flag, 1 ; ɪɟɲɚɟɦ, ɤɚɤɨɟ ɱɢɫɥɨ ɩɪɢɧɢɦɚɟɬɫɹ X ɢɥɢ Y
rjmp setY
rjmp setX
reti
start: ; ɢɧɢɰɢɚɥɢɡɚɰɢɹ ɩɪɨɝɪɚɦɦɵ
ldi flag, 0 ; ɨɛɧɭɥɟɧɢɟ ɮɥɚɝɨɜ
ldi tmp, high(RAMEND) ; ɢɧɢɰɢɚɥɢɡɚɰɢɹ ɩɚɦɹɬɢ ɫɬɟɤɚ
out SPH, tmp
ldi tmp, low(RAMEND)
out SPL, tmp ; ɡɚɜɟɪɲɟɧɢɟ ɢɧɢɰɢɚɥɢɡɚɰɢɢ ɩɚɦɹɬɢ ɫɬɟɤɚ
ldi tmp, 12
out UBRR, tmp ; ɭɫɬɚɧɨɜɤɚ ɫɤɨɪɨɫɬɢ UART 4800 ɛɨɞ
ldi tmp, 0xF8
out UCR, tmp ; ɢɧɢɰɢɚɥɢɡɚɰɢɹ UART
sei ; ɝɥɨɛɚɥɶɧɨɟ ɜɤɥɸɱɟɧɢɟ ɩɪɟɪɵɜɚɧɢɣ
forever : ; ɛɟɫɤɨɧɟɱɧɵɣ ɰɢɤɥ, ɜɫɟ ɞɟɣɫɬɜɢɹ ɩɨ ɩɪɟɪɵɜɚɧɢɹɦ
nop
nop
rjmp forever;
setX: ; ɩɨɥɭɱɚɟɦ ɱɢɫɥɨ X ɢ ɫɨɨɛɳɚɟɦ ɨɛ ɷɬɨɦ ɭɫɬɚɧɨɜɤɨɣ ɮɥɚɝɚ
mov X, tmp
sbr flag, $02
reti
setY: ; ɩɨɥɭɱɚɟɦ ɱɢɫɥɨ Y ɢ ɩɨɫɥɟ ɷɬɨɝɨ ɩɟɪɟɯɨɞɢɦ ɤ ɜɵɱɢɫɥɟɧɢɹɦ
mov Y,tmp
sbr flag, $01
rjmp main
main: ; ɜɵɱɢɫɥɟɧɢɟ ɡɧɚɱɟɧɢɹ
ldi tmp, 9
mul tmp, X
mov result, R0
ldi tmp, 2
mul tmp, Y
add result, R0
subi result, 28
brmi negativ ; ɟɫɥɢ ɩɨɥɭɱ. ɨɬɪ. ɱɢɫɥɨ, ɨɫɭɳɟɫɬɜɥɹɟɦ ɩɟɪɟɯɨɞ
rjmp bcd_result
negativ: ; ɜɵɞɟɥɹɟɦ ɦɨɞɭɥɶ ɱɢɫɥɚ ɢ ɜɵɜɨɞɢɦ ɫɢɦɜɨɥ «–»
ldi tmp, $2D ; ɜɵɜɨɞ ACII ɫɢɦɜɨɥɚ «–»
20
out UDR, tmp ; ɩɨɥɭɱɚɟɦ ɦɨɞɭɥɶ ɱɢɫɥɚ
com result
inc result
rjmp bcd_result
bcd_result: ; ɩɪɟɨɛɪ. ɱɢɫɥɨ: ɞɟɫɹɬɤɢ ɛɭɞɭɬ ɯɪɚɧɢɬɶɫɹ ɜ X, ɚ ɟɞɢɧɢɰɵ ɜ –Y
ldi X, 0
mov Y, result
subi Y, 10
brmi bcd_done
inc X
subi Y, 10
brmi bcd_done
inc X
subi Y, 10
brmi bcd_done
inc X
subi Y, 10
brmi bcd_done
inc X
subi Y, 10
brmi bcd_done
inc X
subi Y, 10
brmi bcd_done
inc X
subi Y, 10
brmi bcd_done
inc X
subi Y, 10
brmi bcd_done
inc X
subi Y, 10
brmi bcd_done
inc X
subi Y, 10
brmi bcd_done
inc X
bcd_done:
com Y
inc Y
subi Y, 10
com Y
inc Y
Страницы
- « первая
- ‹ предыдущая
- …
- 8
- 9
- 10
- 11
- 12
- …
- следующая ›
- последняя »