Abbreviations, automatic: Difference between revisions
Content added Content deleted
(add task to arm assembly raspberry pi) |
(add task to aarch64 assembly raspberry pi) |
||
Line 138: | Line 138: | ||
{{Template:Strings}} |
{{Template:Strings}} |
||
<br><br> |
<br><br> |
||
=={{header|AArch64 Assembly}}== |
|||
{{works with|as|Raspberry Pi 3B version Buster 64 bits}} |
|||
<lang AArch64 Assembly> |
|||
/* ARM assembly AARCH64 Raspberry PI 3B */ |
|||
/* program abbrAuto64.s */ |
|||
/* store list of day in a file listDays.txt*/ |
|||
/* and run the program abbrAuto64 listDays.txt */ |
|||
/*******************************************/ |
|||
/* Constantes file */ |
|||
/*******************************************/ |
|||
/* for this file see task include a file in language AArch64 assembly*/ |
|||
.include "../includeConstantesARM64.inc" |
|||
.equ BUFFERSIZE, 10000 |
|||
.equ NBMAXIDAYS, 7 |
|||
/*********************************/ |
|||
/* Initialized data */ |
|||
/*********************************/ |
|||
.data |
|||
szMessTitre: .asciz "Nom du fichier : " |
|||
szCarriageReturn: .asciz "\n" |
|||
szMessErreur: .asciz "Error detected.\n" |
|||
szMessErrBuffer: .asciz "buffer size too less !!" |
|||
szSpace: .asciz " " |
|||
/*********************************/ |
|||
/* UnInitialized data */ |
|||
/*********************************/ |
|||
.bss |
|||
.align 4 |
|||
sZoneConv: .skip 24 |
|||
qAdrFicName: .skip 8 |
|||
iTabAdrDays: .skip 8 * NBMAXIDAYS |
|||
iTabAdrDays2: .skip 8 * NBMAXIDAYS |
|||
sBufferDays: .skip BUFFERSIZE |
|||
sBuffer: .skip BUFFERSIZE |
|||
/*********************************/ |
|||
/* code section */ |
|||
/*********************************/ |
|||
.text |
|||
.global main |
|||
main: // INFO: main |
|||
mov x0,sp // stack address for load parameter |
|||
bl traitFic // read file and process |
|||
100: // standard end of the program |
|||
mov x0, #0 // return code |
|||
mov x8, #EXIT // request to exit program |
|||
svc #0 // perform the system call |
|||
qAdrszCarriageReturn: .quad szCarriageReturn |
|||
qAdrsZoneConv: .quad sZoneConv |
|||
/******************************************************************/ |
|||
/* read file */ |
|||
/******************************************************************/ |
|||
/* x0 contains address stack begin */ |
|||
traitFic: // INFO: traitFic |
|||
stp x1,lr,[sp,-16]! // save registres |
|||
stp x2,x3,[sp,-16]! // save registres |
|||
stp x4,x5,[sp,-16]! // save registres |
|||
stp x6,x7,[sp,-16]! // save registres |
|||
stp x8,fp,[sp,-16]! // save registres |
|||
mov fp,x0 // fp <- start address |
|||
ldr x4,[fp] // number of Command line arguments |
|||
cmp x4,#1 |
|||
ble 99f |
|||
add x5,fp,#16 // second parameter address |
|||
ldr x5,[x5] |
|||
ldr x0,qAdrqAdrFicName |
|||
str x5,[x0] |
|||
ldr x0,qAdrszMessTitre |
|||
bl affichageMess // display string |
|||
mov x0,x5 |
|||
bl affichageMess |
|||
ldr x0,qAdrszCarriageReturn |
|||
bl affichageMess // display carriage return |
|||
mov x0,AT_FDCWD |
|||
mov x1,x5 // file name |
|||
mov x2,#O_RDWR // flags |
|||
mov x3,#0 // mode |
|||
mov x8, #OPEN // call system OPEN |
|||
svc 0 |
|||
cmp x0,#0 // error ? |
|||
ble 99f |
|||
mov x7,x0 // File Descriptor |
|||
ldr x1,qAdrsBufferDays // buffer address |
|||
mov x2,#BUFFERSIZE // buffer size |
|||
mov x8,#READ // read file |
|||
svc #0 |
|||
cmp x0,#0 // error ? |
|||
blt 99f |
|||
// extraction datas |
|||
ldr x1,qAdrsBufferDays // buffer address |
|||
add x1,x1,x0 |
|||
mov x0,#0 // store zéro final |
|||
strb w0,[x1] |
|||
ldr x0,qAdriTabAdrDays // key string command table |
|||
ldr x1,qAdrsBufferDays // buffer address |
|||
bl extracDatas |
|||
// close file |
|||
mov x0,x7 |
|||
mov x8, #CLOSE |
|||
svc 0 |
|||
mov x0,#0 |
|||
b 100f |
|||
99: // error |
|||
ldr x0,qAdrszMessErreur // error message |
|||
bl affichageMess |
|||
mov x0,#-1 |
|||
100: |
|||
ldp x8,fp,[sp],16 // restaur des 2 registres |
|||
ldp x6,x7,[sp],16 // restaur des 2 registres |
|||
ldp x4,x5,[sp],16 // restaur des 2 registres |
|||
ldp x2,x3,[sp],16 // restaur des 2 registres |
|||
ldp x1,lr,[sp],16 // restaur des 2 registres |
|||
ret |
|||
qAdrqAdrFicName: .quad qAdrFicName |
|||
qAdrszMessTitre: .quad szMessTitre |
|||
qAdrszMessErreur: .quad szMessErreur |
|||
qAdrsBuffer: .quad sBuffer |
|||
qAdrsBufferDays: .quad sBufferDays |
|||
qAdriTabAdrDays: .quad iTabAdrDays |
|||
/******************************************************************/ |
|||
/* extrac lines file buffer */ |
|||
/******************************************************************/ |
|||
/* x0 contains strings address */ |
|||
/* x1 contains buffer address */ |
|||
extracDatas: // INFO: extracDatas |
|||
stp x1,lr,[sp,-16]! // save registres |
|||
stp x2,x3,[sp,-16]! // save registres |
|||
stp x4,x5,[sp,-16]! // save registres |
|||
stp x6,x7,[sp,-16]! // save registres |
|||
stp x8,fp,[sp,-16]! // save registres |
|||
mov x7,x0 |
|||
mov x6,x1 |
|||
mov x2,#0 // string buffer indice |
|||
mov x4,x1 // start string |
|||
mov x5,#0 // string index |
|||
1: |
|||
ldrb w3,[x6,x2] |
|||
cmp w3,#0 |
|||
beq 4f // end |
|||
cmp w3,#0xA |
|||
beq 2f |
|||
cmp w3,#' ' // end string |
|||
beq 3f |
|||
add x2,x2,#1 |
|||
b 1b |
|||
2: |
|||
mov x3,#0 |
|||
strb w3,[x6,x2] |
|||
ldrb w3,[x6,x2] |
|||
cmp w3,#0xD |
|||
bne 21f |
|||
add x2,x2,#2 |
|||
b 22f |
|||
21: |
|||
add x2,x2,#1 |
|||
22: |
|||
mov x0,x4 // store last day of line in table |
|||
str x4,[x7,x5,lsl #3] |
|||
mov x0,x5 // days number |
|||
bl traitLine // process a line of days |
|||
mov x5,#0 // new line |
|||
b 5f |
|||
3: |
|||
mov x3,#0 |
|||
strb w3,[x6,x2] |
|||
add x2,x2,#1 |
|||
4: |
|||
mov x0,x4 |
|||
str x4,[x7,x5,lsl #3] |
|||
add x5,x5,#1 |
|||
5: // supress spaces |
|||
ldrb w3,[x6,x2] |
|||
cmp w3,#0 |
|||
beq 100f |
|||
cmp w3,#' ' |
|||
cinc x2,x2,eq |
|||
beq 5b |
|||
add x4,x6,x2 // new start address |
|||
b 1b |
|||
100: |
|||
ldp x8,fp,[sp],16 // restaur des 2 registres |
|||
ldp x6,x7,[sp],16 // restaur des 2 registres |
|||
ldp x4,x5,[sp],16 // restaur des 2 registres |
|||
ldp x2,x3,[sp],16 // restaur des 2 registres |
|||
ldp x1,lr,[sp],16 // restaur des 2 registres |
|||
ret |
|||
/******************************************************************/ |
|||
/* processing a line */ |
|||
/******************************************************************/ |
|||
/* x0 contains days number in table */ |
|||
traitLine: // INFO: traitLine |
|||
stp x1,lr,[sp,-16]! // save registres |
|||
stp x2,x3,[sp,-16]! // save registres |
|||
stp x4,x5,[sp,-16]! // save registres |
|||
stp x6,x7,[sp,-16]! // save registres |
|||
stp x8,x9,[sp,-16]! // save registres |
|||
stp x10,x11,[sp,-16]! // save registres |
|||
stp x12,x13,[sp,-16]! // save registres |
|||
cmp x0,#1 // one day ? |
|||
bgt 1f // no |
|||
ldr x0,qAdrszCarriageReturn // yes display empty line |
|||
bl affichageMess |
|||
b 100f |
|||
1: // line OK |
|||
mov x6,x0 // days number |
|||
ldr x0,qAdriTabAdrDays |
|||
ldr x1,qAdriTabAdrDays2 |
|||
mov x2,#0 |
|||
11: // copy days table into other for display final |
|||
ldr x3,[x0,x2,lsl #3] |
|||
str x3,[x1,x2,lsl #3] |
|||
add x2,x2,#1 |
|||
cmp x2,x6 |
|||
ble 11b |
|||
ldr x0,qAdriTabAdrDays // and sort first table |
|||
mov x1,#0 |
|||
add x2,x6,#1 |
|||
bl insertionSort |
|||
mov x8,#1 // abbrevations counter |
|||
ldr x12,qAdriTabAdrDays |
|||
mov x2,#0 |
|||
ldr x10,[x12,x2,lsl #3] // load first sorting day |
|||
mov x11,#0 |
|||
mov x3,#1 |
|||
2: // begin loop |
|||
ldr x4,[x12,x3,lsl #3] // load other day |
|||
mov x0,x10 // day1 |
|||
mov x1,x4 // day 2 |
|||
mov x2,#0 // position 0 |
|||
bl compareChar |
|||
cmp x0,#0 // first letter equal ? |
|||
beq 3f |
|||
mov x10,x4 // no -> move day 2 in day 1 |
|||
b 6f |
|||
3: // if equal |
|||
mov x7,x1 // characters length (1,2,3) |
|||
mov x11,#1 // letters position |
|||
4: // loop to compare letters days |
|||
mov x0,x10 |
|||
mov x1,x4 |
|||
mov x2,x7 |
|||
bl compareChar |
|||
cmp x0,#0 |
|||
bne 5f |
|||
cmp x5,#0 // if end |
|||
beq 5f |
|||
add x7,x7,x1 // next character |
|||
add x11,x11,#1 // count letter |
|||
b 4b |
|||
5: |
|||
add x11,x11,#1 // increment letters position |
|||
cmp x11,x8 // and store if > position précedente |
|||
csel x8,x11,x8,gt |
|||
//movgt x8,x11 |
|||
mov x10,x4 // and day1 = day2 |
|||
6: |
|||
add x3,x3,#1 // increment day |
|||
cmp x3,x6 |
|||
ble 2b // and loop |
|||
mov x0,x8 // display position letter |
|||
ldr x1,qAdrsZoneConv |
|||
bl conversion10 |
|||
//mov x2,#0 |
|||
//strb x2,[x1,x0] |
|||
ldr x0,qAdrsZoneConv |
|||
bl affichageMess |
|||
ldr x0,qAdrszSpace |
|||
bl affichageMess |
|||
ldr x0,qAdriTabAdrDays2 // and display list origine days |
|||
mov x1,x6 |
|||
bl displayListDays |
|||
100: |
|||
ldp x12,x13,[sp],16 // restaur des 2 registres |
|||
ldp x10,x11,[sp],16 // restaur des 2 registres |
|||
ldp x8,x9,[sp],16 // restaur des 2 registres |
|||
ldp x6,x7,[sp],16 // restaur des 2 registres |
|||
ldp x4,x5,[sp],16 // restaur des 2 registres |
|||
ldp x2,x3,[sp],16 // restaur des 2 registres |
|||
ldp x1,lr,[sp],16 // restaur des 2 registres |
|||
ret |
|||
qAdrszSpace: .quad szSpace |
|||
qAdriTabAdrDays2: .quad iTabAdrDays2 |
|||
/******************************************************************/ |
|||
/* comparison character unicode */ |
|||
/******************************************************************/ |
|||
/* x0 contains address first string */ |
|||
/* x1 contains address second string */ |
|||
/* x2 contains the character position to compare */ |
|||
/* x0 return 0 if equal 1 if > -1 if < */ |
|||
/* x1 return character S1 size in octet if equal */ |
|||
/* x2 return character S2 size in octet */ |
|||
compareChar: |
|||
stp lr,x3,[sp,-16]! // save registres |
|||
stp x4,x5,[sp,-16]! // save registres |
|||
stp x6,x7,[sp,-16]! // save registres |
|||
stp x8,x9,[sp,-16]! // save registres |
|||
ldrb w3,[x0,x2] |
|||
ldrb w4,[x1,x2] |
|||
cmp w3,w4 // compare first byte |
|||
blt 3f |
|||
bgt 4f |
|||
bne 100f |
|||
and w3,w3,#0b11100000 // 3 bytes ? |
|||
cmp w3,#0b11100000 |
|||
bne 1f |
|||
add x2,x2,#1 |
|||
ldrb w3,[x0,x2] |
|||
ldrb w4,[x1,x2] |
|||
cmp w3,w4 |
|||
blt 3f |
|||
bgt 4f |
|||
bne 100f |
|||
add x2,x2,#1 |
|||
ldrb w3,[x0,x2] |
|||
ldrb w4,[x1,x2] |
|||
cmp w3,w4 |
|||
blt 3f |
|||
bgt 4f |
|||
bne 100f |
|||
mov x0,#0 |
|||
mov x1,#3 |
|||
b 100f |
|||
1: |
|||
cmp w3,#0b11000000 // 2 bytes ? |
|||
bne 2f |
|||
add x2,x2,#1 |
|||
ldrb w3,[x0,x2] |
|||
ldrb w4,[x1,x2] |
|||
cmp w3,w4 |
|||
blt 3f |
|||
bgt 4f |
|||
bne 100f |
|||
mov x0,#0 |
|||
mov x1,#2 |
|||
b 100f |
|||
2: // 1 byte |
|||
mov x0,#0 |
|||
mov x1,#1 |
|||
b 100f |
|||
3: |
|||
mov x0,#-1 |
|||
b 100f |
|||
4: |
|||
mov x0,#1 |
|||
100: |
|||
ldp x8,x9,[sp],16 // restaur des 2 registres |
|||
ldp x6,x7,[sp],16 // restaur des 2 registres |
|||
ldp x4,x5,[sp],16 // restaur des 2 registres |
|||
ldp lr,x3,[sp],16 // restaur des 2 registres |
|||
ret |
|||
/******************************************************************/ |
|||
/* control load */ |
|||
/******************************************************************/ |
|||
/* x0 contains string table */ |
|||
/* x1 contains days number */ |
|||
displayListDays: |
|||
stp x1,lr,[sp,-16]! // save registres |
|||
stp x2,x3,[sp,-16]! // save registres |
|||
stp x4,x5,[sp,-16]! // save registres |
|||
stp x6,x7,[sp,-16]! // save registres |
|||
stp x8,x9,[sp,-16]! // save registres |
|||
mov x5,x0 |
|||
mov x2,#0 |
|||
1: |
|||
cmp x2,x1 |
|||
bgt 2f |
|||
ldr x0,[x5,x2,lsl #3] |
|||
bl affichageMess |
|||
ldr x0,qAdrszSpace |
|||
bl affichageMess |
|||
add x2,x2,#1 |
|||
b 1b |
|||
2: |
|||
ldr x0,qAdrszCarriageReturn |
|||
bl affichageMess |
|||
100: |
|||
ldp x8,x9,[sp],16 // restaur des 2 registres |
|||
ldp x6,x7,[sp],16 // restaur des 2 registres |
|||
ldp x4,x5,[sp],16 // restaur des 2 registres |
|||
ldp x2,x3,[sp],16 // restaur des 2 registres |
|||
ldp x1,lr,[sp],16 // restaur des 2 registres |
|||
ret |
|||
/************************************/ |
|||
/* Strings case sensitive comparisons */ |
|||
/************************************/ |
|||
/* x0 et x1 contains the address of strings */ |
|||
/* return 0 in x0 if equals */ |
|||
/* return -1 if string x0 < string x1 */ |
|||
/* return 1 if string x0 > string x1 */ |
|||
comparStrings: |
|||
stp x1,lr,[sp,-16]! // save registres |
|||
stp x2,x3,[sp,-16]! // save registres |
|||
stp x4,x5,[sp,-16]! // save registres |
|||
mov x2,#0 // counter |
|||
1: |
|||
ldrb w3,[x0,x2] // byte string 1 |
|||
ldrb w4,[x1,x2] // byte string 2 |
|||
cmp w3,w4 |
|||
blt 2f |
|||
bgt 3f |
|||
bne 100f // not equals |
|||
cmp w3,#0 // 0 end string |
|||
beq 4f // end string |
|||
add x2,x2,#1 // else add 1 in counter |
|||
b 1b // and loop |
|||
2: |
|||
mov x0,#-1 // small |
|||
b 100f |
|||
3: |
|||
mov x0,#1 // greather |
|||
b 100f |
|||
4: |
|||
mov x0,#0 // equal |
|||
100: |
|||
ldp x4,x5,[sp],16 // restaur des 2 registres |
|||
ldp x2,x3,[sp],16 // restaur des 2 registres |
|||
ldp x1,lr,[sp],16 // restaur des 2 registres |
|||
ret |
|||
/******************************************************************/ |
|||
/* insertion sort */ |
|||
/******************************************************************/ |
|||
/* x0 contains the address of table */ |
|||
/* x1 contains the first element */ |
|||
/* x2 contains the number of element */ |
|||
insertionSort: |
|||
stp x1,lr,[sp,-16]! // save registres |
|||
stp x2,x3,[sp,-16]! // save registres |
|||
stp x4,x5,[sp,-16]! // save registres |
|||
stp x6,x7,[sp,-16]! // save registres |
|||
mov x6,x0 |
|||
add x3,x1,#1 // start index i |
|||
1: // start loop |
|||
ldr x1,[x6,x3,lsl #3] // load value A[i] |
|||
sub x5,x3,#1 // index j |
|||
2: |
|||
ldr x4,[x6,x5,lsl #3] // load value A[j] |
|||
mov x0,x4 |
|||
bl comparStrings |
|||
cmp x0,#1 // compare value |
|||
bne 3f |
|||
add x5,x5,#1 // increment index j |
|||
str x4,[x6,x5,lsl #3] // store value A[j+1] |
|||
subs x5,x5,#2 // j = j - 1 |
|||
bge 2b // loop if j >= 0 |
|||
3: |
|||
add x5,x5,#1 // increment index j |
|||
str x1,[x6,x5,lsl #3] // store value A[i] in A[j+1] |
|||
add x3,x3,#1 // increment index i |
|||
cmp x3,x2 // end ? |
|||
blt 1b // no -> loop |
|||
100: |
|||
ldp x6,x7,[sp],16 // restaur des 2 registres |
|||
ldp x4,x5,[sp],16 // restaur des 2 registres |
|||
ldp x2,x3,[sp],16 // restaur des 2 registres |
|||
ldp x1,lr,[sp],16 // restaur des 2 registres |
|||
ret |
|||
/********************************************************/ |
|||
/* File Include fonctions */ |
|||
/********************************************************/ |
|||
/* for this file see task include a file in language AArch64 assembly */ |
|||
.include "../includeARM64.inc" |
|||
</lang> |
|||
<pre> |
|||
Nom du fichier : listDays.txt |
|||
2 Sunday Monday Tuesday Wednesday Thursday Friday Saturday |
|||
2 Sondag Maandag Dinsdag Woensdag Donderdag Vrydag Saterdag |
|||
4 E_djelë E_hënë E_martë E_mërkurë E_enjte E_premte E_shtunë |
|||
2 Ehud Segno Maksegno Erob Hamus Arbe Kedame |
|||
5 Al_Ahad Al_Ithinin Al_Tholatha'a Al_Arbia'a Al_Kamis Al_Gomia'a Al_Sabit |
|||
4 Guiragui Yergou_shapti Yerek_shapti Tchorek_shapti Hink_shapti Ourpat Shapat |
|||
2 domingu llunes martes miércoles xueves vienres sábadu |
|||
2 Bazar_gÜnÜ Birinci_gÜn Çkinci_gÜn ÜçÜncÜ_gÜn DÖrdÜncÜ_gÜn Bes,inci_gÜn Altòncò_gÜn |
|||
6 Igande Astelehen Astearte Asteazken Ostegun Ostiral Larunbat |
|||
4 Robi_bar Shom_bar Mongal_bar Budhh_bar BRihashpati_bar Shukro_bar Shoni_bar |
|||
2 Nedjelja Ponedeljak Utorak Srijeda Cxetvrtak Petak Subota |
|||
5 Disul Dilun Dimeurzh Dimerc'her Diriaou Digwener Disadorn |
|||
2 nedelia ponedelnik vtornik sriada chetvartak petak sabota |
|||
12 sing_kei_yaht sing_kei_yat sing_kei_yee sing_kei_saam sing_kei_sie sing_kei_ng sing_kei_luk |
|||
4 Diumenge Dilluns Dimarts Dimecres Dijous Divendres Dissabte |
|||
16 Dzeenkk-eh Dzeehn_kk-ehreh Dzeehn_kk-ehreh_nah_kay_dzeeneh Tah_neesee_dzeehn_neh Deehn_ghee_dzee-neh Tl-oowey_tts-el_dehlee Dzeentt-ahzee |
|||
6 dy_Sul dy_Lun dy_Meurth dy_Mergher dy_You dy_Gwener dy_Sadorn |
|||
2 Dimanch Lendi Madi Mèkredi Jedi Vandredi Samdi |
|||
2 nedjelja ponedjeljak utorak srijeda cxetvrtak petak subota |
|||
2 nede^le ponde^lí úterÿ str^eda c^tvrtek pátek sobota |
|||
2 Sondee Mondee Tiisiday Walansedee TOOsedee Feraadee Satadee |
|||
2 s0ndag mandag tirsdag onsdag torsdag fredag l0rdag |
|||
2 zondag maandag dinsdag woensdag donderdag vrijdag zaterdag |
|||
2 Diman^co Lundo Mardo Merkredo ^Jaùdo Vendredo Sabato |
|||
1 pÜhapäev esmaspäev teisipäev kolmapäev neljapäev reede laupäev |
|||
7 Diu_prima Diu_sequima Diu_tritima Diu_quartima Diu_quintima Diu_sextima Diu_sabbata |
|||
2 sunnudagur mánadagur tÿsdaguy mikudagur hósdagur friggjadagur leygardagur |
|||
2 Yek_Sham'beh Do_Sham'beh Seh_Sham'beh Cha'har_Sham'beh Panj_Sham'beh Jom'eh Sham'beh |
|||
2 sunnuntai maanantai tiistai keskiviiko torsktai perjantai lauantai |
|||
2 dimanche lundi mardi mercredi jeudi vendredi samedi |
|||
4 Snein Moandei Tiisdei Woansdei Tonersdei Freed Sneon |
|||
2 Domingo Segunda_feira Martes Mércores Joves Venres Sábado |
|||
2 k'vira orshabati samshabati otkhshabati khutshabati p'arask'evi shabati |
|||
2 Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag |
|||
2 Kiriaki' Defte'ra Tri'ti Teta'rti Pe'mpti Paraskebi' Sa'bato |
|||
3 ravivaar somvaar mangalvaar budhvaar guruvaar shukravaar shanivaar |
|||
6 pópule pó`akahi pó`alua pó`akolu pó`ahá pó`alima pó`aono |
|||
7 Yom_rishon Yom_sheni Yom_shlishi Yom_revi'i Yom_chamishi Yom_shishi Shabat |
|||
3 ravivara somavar mangalavar budhavara brahaspativar shukravara shanivar |
|||
3 vasárnap hétfö kedd szerda csütörtök péntek szombat |
|||
2 Sunnudagur Mánudagur ╞riδjudagur Miδvikudagar Fimmtudagur FÖstudagur Laugardagur |
|||
2 sundio lundio mardio merkurdio jovdio venerdio saturdio |
|||
3 Minggu Senin Selasa Rabu Kamis Jumat Sabtu |
|||
2 Dominica Lunedi Martedi Mercuridi Jovedi Venerdi Sabbato |
|||
4 Dé_Domhnaigh Dé_Luain Dé_Máirt Dé_Ceadaoin Dé_ardaoin Dé_hAoine Dé_Sathairn |
|||
2 domenica lunedí martedí mercoledí giovedí venerdí sabato |
|||
2 Nichiyou_bi Getzuyou_bi Kayou_bi Suiyou_bi Mokuyou_bi Kin'you_bi Doyou_bi |
|||
1 Il-yo-il Wol-yo-il Hwa-yo-il Su-yo-il Mok-yo-il Kum-yo-il To-yo-il |
|||
7 Dies_Dominica Dies_Lunæ Dies_Martis Dies_Mercurii Dies_Iovis Dies_Veneris Dies_Saturni |
|||
3 sve-tdien pirmdien otrdien tresvdien ceturtdien piektdien sestdien |
|||
2 Sekmadienis Pirmadienis Antradienis Trec^iadienis Ketvirtadienis Penktadienis S^es^tadienis |
|||
3 Wangu Kazooba Walumbe Mukasa Kiwanuka Nnagawonye Wamunyi |
|||
12 xing-_qi-_rì xing-_qi-_yi-. xing-_qi-_èr xing-_qi-_san-. xing-_qi-_sì xing-_qi-_wuv. xing-_qi-_liù |
|||
3 Jedoonee Jelune Jemayrt Jecrean Jardaim Jeheiney Jesam |
|||
3 Jabot Manre Juje Wonje Taije Balaire Jarere |
|||
5 geminrongo minòmishi mártes mièrkoles misheushi bèrnashi mishábaro |
|||
2 Ahad Isnin Selasa Rabu Khamis Jumaat Sabtu |
|||
2 sφndag mandag tirsdag onsdag torsdag fredag lφrdag |
|||
7 lo_dimenge lo_diluns lo_dimarç lo_dimèrcres lo_dijòus lo_divendres lo_dissabte |
|||
4 djadomingo djaluna djamars djarason djaweps djabièrna djasabra |
|||
2 Niedziela Poniedzial/ek Wtorek S,roda Czwartek Pia,tek Sobota |
|||
3 Domingo segunda-feire terça-feire quarta-feire quinta-feire sexta-feira såbado |
|||
1 Domingo Lunes martes Miercoles Jueves Viernes Sabado |
|||
2 Duminicª Luni Mart'i Miercuri Joi Vineri Sâmbªtª |
|||
2 voskresenie ponedelnik vtornik sreda chetverg pyatnitsa subbota |
|||
4 Sunday Di-luain Di-màirt Di-ciadain Di-ardaoin Di-haoine Di-sathurne |
|||
2 nedjelja ponedjeljak utorak sreda cxetvrtak petak subota |
|||
5 Sontaha Mmantaha Labobedi Laboraro Labone Labohlano Moqebelo |
|||
2 Iridha- Sandhudha- Anga.haruwa-dha- Badha-dha- Brahaspa.thindha- Sikura-dha- Sena.sura-dha- |
|||
2 nedel^a pondelok utorok streda s^tvrtok piatok sobota |
|||
2 Nedelja Ponedeljek Torek Sreda Cxetrtek Petek Sobota |
|||
2 domingo lunes martes miércoles jueves viernes sábado |
|||
2 sonde mundey tude-wroko dride-wroko fode-wroko freyda Saturday |
|||
7 Jumapili Jumatatu Jumanne Jumatano Alhamisi Ijumaa Jumamosi |
|||
2 söndag måndag tisdag onsdag torsdag fredag lordag |
|||
2 Linggo Lunes Martes Miyerkoles Huwebes Biyernes Sabado |
|||
6 Lé-pài-jít Pài-it Pài-jï Pài-sañ Pài-sì Pài-gÖ. Pài-lák |
|||
7 wan-ar-tit wan-tjan wan-ang-kaan wan-phoet wan-pha-ru-hat-sa-boh-die wan-sook wan-sao |
|||
5 Tshipi Mosupologo Labobedi Laboraro Labone Labotlhano Matlhatso |
|||
6 Pazar Pazartesi Sali Çar,samba Per,sembe Cuma Cumartesi |
|||
2 nedilya ponedilok vivtorok sereda chetver pyatnytsya subota |
|||
8 Chu?_Nhâ.t Thú*_Hai Thú*_Ba Thú*_Tu* Thú*_Na'm Thú*_Sáu Thú*_Ba?y |
|||
6 dydd_Sul dyds_Llun dydd_Mawrth dyds_Mercher dydd_Iau dydd_Gwener dyds_Sadwrn |
|||
3 Dibeer Altine Talaata Allarba Al_xebes Aljuma Gaaw |
|||
7 iCawa uMvulo uLwesibini uLwesithathu uLuwesine uLwesihlanu uMgqibelo |
|||
2 zuntik montik dinstik mitvokh donershtik fraytik shabes |
|||
7 iSonto uMsombuluko uLwesibili uLwesithathu uLwesine uLwesihlanu uMgqibelo |
|||
7 Dies_Dominica Dies_Lunæ Dies_Martis Dies_Mercurii Dies_Iovis Dies_Veneris Dies_Saturni |
|||
11 Bazar_gÜnÜ Bazar_ærtæsi Çærs,ænbæ_axs,amò Çærs,ænbæ_gÜnÜ CÜmæ_axs,amò CÜmæ_gÜnÜ CÜmæ_Senbæ |
|||
2 Sun Moon Mars Mercury Jove Venus Saturn |
|||
2 zondag maandag dinsdag woensdag donderdag vrijdag zaterdag |
|||
2 KoseEraa GyoOraa BenEraa Kuoraa YOwaaraa FeEraa Memenaa |
|||
5 Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Sonnabend |
|||
1 Domingo Luns Terza_feira Corta_feira Xoves Venres Sábado |
|||
7 Dies_Solis Dies_Lunae Dies_Martis Dies_Mercurii Dies_Iovis Dies_Veneris Dies_Sabbatum |
|||
12 xing-_qi-_tiàn xing-_qi-_yi-. xing-_qi-_èr xing-_qi-_san-. xing-_qi-_sì xing-_qi-_wuv. xing-_qi-_liù |
|||
4 djadomingu djaluna djamars djarason djaweps djabièrnè djasabra |
|||
2 Killachau Atichau Quoyllurchau Illapachau Chaskachau Kuychichau Intichau |
|||
</pre> |
|||
=={{header|ARM Assembly}}== |
=={{header|ARM Assembly}}== |
||
{{works with|as|Raspberry Pi}} |
{{works with|as|Raspberry Pi}} |