Ú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.
Jester
Új hozzászólás Aktív témák
- Shakes&Fidget Online Szerepjáték
- Elképesztő, hogy mennyit érnek az AI-ra koncentráló cégek
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Soundbar, soundplate, hangprojektor
- Vigneau interaktív lokálblogja
- Programozás topic
- Kutya topik
- Xbox tulajok OFF topicja
- Kerékpárosok, bringások ide!
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- Kedvező ár! Dell Latitude 5480 laptop (14FHD/i5-G7/8GBDDR4/256SSD/MagyarVil)
- Kedvező ár! Dell Latitude 3450 laptop (14/i5-G5/8GB/256SSD/Magyar)
- APPLE MACBOOK PRO 16" Space Gray /I7 6-CORE 2.6 GHZ/16GB/512GB SSD/AMD Radeon Pro 5300M 4GB
- ÚJ! Apple Watch Ultra 2 49mm GPS + Cellular - 3 év Apple gar, 100%, titán, doboz
- HP 27-cr0047no - ÚJ - 27" All-IN-ONE PC - Ryzen 7, 16GB, 512SSD, 300 nit
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen