Hirdetés
- Fejhallgató erősítő és DAC topik
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Elkezdte felszámolni a GPU-s PhysX támogatását az NVIDIA
- Titán TUF módra: teszten az NVIDIA GeForce RTX 5070 Ti!
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- Vezeték nélküli fülhallgatók
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Hobby elektronika
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Milyen videókártyát?
Új hozzászólás Aktív témák
-
Jester01
veterán
válasz
Gabee001 #238 üzenetére
64 bites gas assemblerrel pl. a következő egy megoldás lehet magára a konverzióra:
.text
.globl getroman
.type getroman, @function
getroman:
movq %rax, %rbx
movq $numbers, %rdx
LOOP1:
movq %cs:(%rdx), %rdi
or %rdi, %rdi
jnz OK
movb $'?', %al
jmp DONE
OK:
movq %rbx, %rsi
LOOP2:
movb (%rsi), %al
cmpb %cs:(%rdi), %al
je MATCH
addq $8, %rdx
jmp LOOP1
MATCH:
cmpb $'\n', %al
movb %cs:1(%rdi), %al
je DONE
incq %rsi
incq %rdi
jmp LOOP2
DONE:
ret
numbers:
.quad r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, 0
r1: .ascii "I\n1"
r2: .ascii "II\n2"
r3: .ascii "III\n3"
r4: .ascii "IV\n4"
r5: .ascii "V\n5"
r6: .ascii "VI\n6"
r7: .ascii "VII\n7"
r8: .ascii "VIII\n8"
r9: .ascii "IX\n9"
r10: .ascii "X\nA"A függvényt C-ből a char getroman(const char* s) formában lehet hívni. (Bemeneti pointer a rax regiszterben, kimeneti karakter az al regiszterben.) Alakítsd át igényeid szerint. A MATCH címke előtt van egy add utasítás, oda a megfelelő pointer méretet kell tenni. HTH.
-
Új hozzászólás Aktív témák
- Fejhallgató erősítő és DAC topik
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Elkezdte felszámolni a GPU-s PhysX támogatását az NVIDIA
- Kuponkunyeráló
- Titán TUF módra: teszten az NVIDIA GeForce RTX 5070 Ti!
- exHWSW - Értünk mindenhez IS
- Samsung Galaxy S23 Ultra - non plus ultra
- Ukrajnai háború
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- Bemutatta az Apple az iPhone 16e-t
- További aktív témák...