Tak jak bych zapsal správně ten if ?
Porovnám rbx a rcx a když rbx je menší tak chci aby se provedlo " add dword ptr [rbx],1" a když není menší tak ne ( Podle toho zadání v javě).
Assembler x64 ( pomoc s domácím úkolem)
- satik
- Level 6
- Příspěvky: 3509
- Registrován: leden 15
- Bydliště: Krkonoše
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Assembler x64 ( pomoc s domácím úkolem)
label prikaz:
hod az za ten add a ten podmineny jump otoc, aby jsi ten add kdyztak preskocil
hod az za ten add a ten podmineny jump otoc, aby jsi ten add kdyztak preskocil
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Assembler x64 ( pomoc s domácím úkolem)
Díky.
Udělal jsme to a určitě je to dobře.
Nejdřív jsme si to samotné vyzkoušle jak to funguje
mov rdx, 1
mov rsi, 2
mov rax, 1
mov rbx, 2
cmp rbx, rax
jb prikaz
call print_rdx
prikaz:
a podle toho jsme to pak zakonponoval i do to programu
nicméně mi to pořád háže při spuštění
" make: *** [Makefile:18: run] Segmentation fault (obraz paměti uložen)"
když to najede na ten řádek
" add dword ptr [rbx],1 "
Udělal jsme to a určitě je to dobře.
Nejdřív jsme si to samotné vyzkoušle jak to funguje
mov rdx, 1
mov rsi, 2
mov rax, 1
mov rbx, 2
cmp rbx, rax
jb prikaz
call print_rdx
prikaz:
a podle toho jsme to pak zakonponoval i do to programu
nicméně mi to pořád háže při spuštění
" make: *** [Makefile:18: run] Segmentation fault (obraz paměti uložen)"
když to najede na ten řádek
" add dword ptr [rbx],1 "
- satik
- Level 6
- Příspěvky: 3509
- Registrován: leden 15
- Bydliště: Krkonoše
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Assembler x64 ( pomoc s domácím úkolem)
segfault na
V RBX mas mit v tuhle chvili ukazatel na misto nekde v pameti, a snazis se na to misto v pameti ulozit jednicku, takze v rbx mas nejakou neplatnou adresu, kdyz to hazi segfault.
Kód: Vybrat vše
add dword ptr [rbx],1
V RBX mas mit v tuhle chvili ukazatel na misto nekde v pameti, a snazis se na to misto v pameti ulozit jednicku, takze v rbx mas nejakou neplatnou adresu, kdyz to hazi segfault.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Assembler x64 ( pomoc s domácím úkolem)
už vůbec nevím, co s tím
ještě jsem zkoušel místo add 1 použít inc, ale to nic nezmění
schválně jsem zkusil dát do podmínky print a zacyklí se to.. skončí to ale vypíše to strašně moc řádků.
ještě jsem zkoušel místo add 1 použít inc, ale to nic nezmění
schválně jsem zkusil dát do podmínky print a zacyklí se to.. skončí to ale vypíše to strašně moc řádků.
Kód: Vybrat vše
/
/*deklarace*/
pole: .quad 1, 3, 3, 5, 2, 4, 4, 4, 4, 3, 2, 2, 1, 5, 5, 6
hist: .quad 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
delka: .int 5 /*nějaká "náhodná" čísla"*/
pocetBinu: .int 5 /*nějaká "náhodná" čísla"*/
/*program*/
lea rax, pole[rip] /* pointer na začátek pole pole*/
lea rbx, hist[rip] /* pointer na začátek pole hist,*/
mov rcx, pocetBinu[rip] /* pocetBinu do rcx */
mov rdx, delka[rip] /* nastaví iterátor podle délky */
cycle:
mov rbx, [rax] /*přiřadí do rbx,hodnotu pole na pozici i (kde je pointer), prvek=pole[i] */
add rax,8 /* posun ukazatele v poli o jedno místo */
cmp rcx, rbx /*porovnání pocetBinu a pole[i] */
jb prikaz /*pokud je pocetBinu menší než pole[i] přeskočí následující příkaz*/
inc dword ptr [rbx] /* zvětšení hist na pozici kde je pointer o 1 (hist[prvek]++) */
prikaz: /*skok sem */
dec rdx /*zmenšení iterátoru* i++(respektive v našem případě i--)*/
jnz cycle /*skok na cyklus*/
/*tisk ?? hist */
- satik
- Level 6
- Příspěvky: 3509
- Registrován: leden 15
- Bydliště: Krkonoše
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Assembler x64 ( pomoc s domácím úkolem)
1.
tenhle kod te posune o dve mista, int (= DWORD = long) ma 4 bajty
2. vyhazel bych ty ripy, fakt si nejsem jistej, jestli tam nedelaji nejakej bordel
Kód: Vybrat vše
add rax,8 /* posun ukazatele v poli o jedno místo */
tenhle kod te posune o dve mista, int (= DWORD = long) ma 4 bajty
2. vyhazel bych ty ripy, fakt si nejsem jistej, jestli tam nedelaji nejakej bordel
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 6
- 2109
-
od Karrex
Zobrazit poslední příspěvek
14 dub 2023 14:09
-
- 22
- 2624
-
od Kvp2
Zobrazit poslední příspěvek
12 lis 2023 20:39
-
- 1
- 1204
-
od zeus
Zobrazit poslední příspěvek
04 pro 2023 22:07
-
-
Kontrola+pomoc se sestavením NEW PC (do 70 tis.)
od Petersfree » 15 pro 2023 21:10 » v Rady s výběrem hw a sestavením PC - 7
- 1141
-
od Petersfree
Zobrazit poslední příspěvek
22 pro 2023 06:55
-
-
-
Pomoc / Stavění PC do 20K / Nováček Příloha(y)
od blatantq » 16 pro 2023 18:38 » v Rady s výběrem hw a sestavením PC - 32
- 1445
-
od Martab
Zobrazit poslední příspěvek
26 pro 2023 11:04
-
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů