Difference between revisions of "LU-MOP-b13"

From DiLab
Jump to: navigation, search
(Kalendārs)
(Mājas darbi)
Line 130: Line 130:


===MD1===
===MD1===

'''Termiņš''': 6.maijs, 12:00


Izveidot programmiņu asemblerā, kas aprēķina aritmētiskās progresijas summu no 1 līdz n ar soli 1.
Izveidot programmiņu asemblerā, kas aprēķina aritmētiskās progresijas summu no 1 līdz n ar soli 1.
Line 136: Line 138:
Jāizstrādā un jāiesniedz:
Jāizstrādā un jāiesniedz:
# '''Makefile''' - fails, kas ļauj kompilēt jūsu programmu
# '''Makefile''' - fails, kas ļauj kompilēt jūsu programmu
# '''md1.h''' - pirmkoda fails ar funkcijas prototipu, ko iekļaus gan C gan asemblera faili.
# '''md1.s''' - Programmu asemblerā, kas aprēķina aritmētiskās progresijas summu
# '''md1.s''' - programmu asemblerā, kas aprēķina aritmētiskās progresijas summu.
# '''md1_main.c''' - Programmu C valodā, kas izsauc asamblera programmu un padod tai parametru '''n''' un saņem rezultātu, ko izdrukā uz ekrāna.
# '''md1_main.c''' - programmu C valodā, kas izsauc asamblera programmu un padod tai parametru '''n''' un saņem rezultātu, ko izdrukā uz ekrāna.


Testējot, parametrs '''n''' jāpadod no komandu rindas, līdzīgi kā praktisko darbu piemēros.
Testējot, parametrs '''n''' jāpadod no komandu rindas, līdzīgi kā praktisko darbu piemēros.
Line 151: Line 154:
leo@asm1:~/work/md1$> ./md1 10
leo@asm1:~/work/md1$> ./md1 10
55
55

Risinājums '''nedrīkst izmantot reizinašanas''' instrukcijas!


Risinājumam jābūt testētam, un jādarbojās uz asm1.linux.edu.lv servera (arm platformai, emulācijas režīmā).
Risinājumam jābūt testētam, un jādarbojās uz asm1.linux.edu.lv servera (arm platformai, emulācijas režīmā).

Jautājumus un neskaidrības par MD lūdzu iesūtīt kursa google grupā.


Risinājumu jāiesūta elektroniski.
Risinājumu jāiesūta elektroniski.
Risinājumam ar visiem failiem jābūt direktorijā <code>~md1/</code> uz servera <code>asm1.linux.edu.lv</code>
Iesūtīšanas instrukcijas tiks paziņotas vēlāk, kā arī lekcijā.

Jautājumus un neskaidrības par MD lūdzu iesūtīt kursa google grupā.


== Literatūra ==
== Literatūra ==

Revision as of 11:46, 29 April 2013

Mašīnorientētā programmēšana (MOP)

LU DF bakalaura studiju kurss DatZ4017, meklēt eStudijās.


  • Pasniedzējs: Leo Seļāvo (epasts: vards.uzvards @ gmail.com)



Kalendārs

Datums, nedēļa Kursa saturs Uzdevumi
04.02.2013.

Ievads kursā. Kursa mērķi. Iegultās un mazo procesoru sistēmas. ARM arhitektūra. Mācību izstrādes vide.

11.02.2013.

Sešpadsmitnieku un citas skaitīšatas sistēmas datoriem. Pārveidojumi starp dažādām sistēmām, aritmētiskās darbības. Biti, baiti, vārdi, nibbles.

18.02.2013. Lekcija pārcelta.
25.02.2013.

Procesora uzbūve. Operatīvā atmiņa. Procesora un atmiņas sadarbība. Adreses. Reģistri. Procesora režīmi.

  • Kontroldarbs MK1
04.03.2013.

Skaitļu attēlošana papildkodā.

Programmu izstrādes vide.

11.03.2013.

Programmu izstrādes vide.

"asm1" serveris praktiskajiem darbiem.

  • Kontroldarbs MK2
  • Notiek praktiskie darbi
18.03.2013.

Komandu pieraksts, aritmētiskās un bitu operācijas.

Notiek praktiskie darbi
25.03.2013.

Lieldienu brīvdienas

01.04.2013.

Lieldienu brīvdienas

08.04.2013.

Vadības maiņas komandas, testi, bitu operācijas.

15.04.2013.

Adresācijas režīmi, darbs ar atmiņu.

Kontroldarbs MK3
22.04.2013.

Apakašprogrammu izsaukumi, saskarne ar "C".

29.04.2013.

Simboliskie dati, kodu tabulas.

Izteiksmes un makro valoda.

06.05.2013.

Brīvdiena - jo 4.maijs ir sestdiena

13.05.2013.

Iekļautais asemblers, programmatūras izstrādē lietoto rīku darbības principi.

Instrukciju izpildes laiki.

20.05.2013.

Sistēmas sāknēšana, priviliģētās operācijas.

27.05.2013.

Kursa vielas pārskats.

xx.xx.2013. Eksāmens

 

Kontroldarbi


Mājas darbi

MD1

Termiņš: 6.maijs, 12:00

Izveidot programmiņu asemblerā, kas aprēķina aritmētiskās progresijas summu no 1 līdz n ar soli 1.

Skaitlis n tiek padots kā parametrs. Jāizstrādā un jāiesniedz:

  1. Makefile - fails, kas ļauj kompilēt jūsu programmu
  2. md1.h - pirmkoda fails ar funkcijas prototipu, ko iekļaus gan C gan asemblera faili.
  3. md1.s - programmu asemblerā, kas aprēķina aritmētiskās progresijas summu.
  4. md1_main.c - programmu C valodā, kas izsauc asamblera programmu un padod tai parametru n un saņem rezultātu, ko izdrukā uz ekrāna.

Testējot, parametrs n jāpadod no komandu rindas, līdzīgi kā praktisko darbu piemēros.

Tātad, jums būs jāizveido md1_main.c programma, kas saņem parametru caur argv[1], pārveido to par "int", un šis veselais skaitlis jāpadod kā parametrs funkcijai asum(), kas realizēta asemblera kodā, failā md1.s

Rezultāts jāsaņem atpakaļ C programmā un jāizdrukā, piemēram, ar printf() funkciju. Jāizdrukā tikai skaitlis un rindas beigu simbols '\n'.

Piemērs izsaukumam (tam, kā jūsu programma tiks testēta, tikai ar citiem skaitļiem):

leo@asm1:~/work/md1$>  ./md1 10
55

Risinājums nedrīkst izmantot reizinašanas instrukcijas!

Risinājumam jābūt testētam, un jādarbojās uz asm1.linux.edu.lv servera (arm platformai, emulācijas režīmā).

Risinājumu jāiesūta elektroniski. Risinājumam ar visiem failiem jābūt direktorijā ~md1/ uz servera asm1.linux.edu.lv

Jautājumus un neskaidrības par MD lūdzu iesūtīt kursa google grupā.

Literatūra

Grāmatas un citi resursi

  • ARM Architecture Reference Manual, ARM DDI 0100I, ARM Limited, 2005.
  • Intel R XScaleTM Microarchitecture Assembly Language Quick Reference Card ARM Instruction Set, Intel Corporation, 2001
  • Intel XScale R Core Developer’s Manual, ON: 273473-002, Intel Corporation, 2004
  • Intel R IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor Developer’s Manual, ON: 252480-006US, Intel Corporation, 2006
  • Patterson and Hennessy, Computer Organization and Design, 4th Edition (@Amazon)
  • "Building Embedded Linux Systems" O'Reilly Media, 2008, ISBN 0596529686

Saites

Atziņas