Kezdőoldal » Számítástechnika » Programozás » Hogyan néz ki az alábbi...

Hogyan néz ki az alábbi program Assembly-ben?

Figyelt kérdés

A program bekér egy N egész számot, majd eldönti róla, hogy prímszám-e és ha prímszám, akkor kiírja, hogy: "ez a szám prímszám", ha pedig nem, prímszám akkor ezt: "Ez a szám nem prímszám". Ékezetek nélkül is lehet, azt nem muszály.


Köszönöm! Nem azért nem én csinálom meg mert lusta vagyok, hanem mert nem tanítják és mégis elvárja a tanár, hogy meglegyen :S

Köszönöm a segítségetek!


2011. nov. 23. 17:40
 1/6 A kérdező kommentje:
C++ -ban már sikerült megcsinálni, abban működik is.
2011. nov. 23. 17:44
 2/6 anonim ***** válasza:
Akkor az exe-re egy disassembly, és meg is vagy XD
2011. nov. 23. 20:20
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
gcc fordító -S paraméterrel..?
2011. nov. 23. 21:13
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

[link]


0412, 0509-es gyakorlatban, van jópár Assembly példa. Ezeket tanulmányozd át. Nem Olyan nehéz egy prímeldöntős programot írni. Persze mi nem fogjuk neked megcsinálni.

Mi kellhet hozzá? Elágazás, ciklus, és, hogy egy picit gondolkodj.

Szerintem ezen mintaprogramok alapján, ha egy pár órát rászánsz, már mennie kell.

2011. nov. 23. 23:44
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:
De én semennyiren em vágom azt ami oda le van írva. Ha szórol szóra le lenne írva, hogy melyik sor mit csinál, meg miért úgy van, akkor talán megtudnám csinálni segítséggel. De így egyedül jöjjek rá mindenre, nekem ez nem fekszik. Nem is értem minek tanuljuk ezt, soha a büdös életbe nem fogom ezt használni. :\
2011. nov. 24. 14:00
 6/6 anonim ***** válasza:

Tessék:

:D C++ -ról lett lefordítva. gcc 8.2 -es verzió



.LC0:

.string "Irj be egy pozitiv egesz szamot: "

.LC1:

.string "Ez egy primszam."

.LC2:

.string "Ez nem primszam."

main:

pushq %rbp

movq %rsp, %rbp

subq $16, %rsp

movb $1, -5(%rbp)

movl $.LC0, %esi

movl $_ZSt4cout, %edi

call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)

leaq -12(%rbp), %rax

movq %rax, %rsi

movl $_ZSt3cin, %edi

call std::basic_istream<char, std::char_traits<char> >::operator>>(int&)

movl $2, -4(%rbp)

.L4:

movl -12(%rbp), %eax

movl %eax, %edx

shrl $31, %edx

addl %edx, %eax

sarl %eax

cmpl %eax, -4(%rbp)

jg .L2

movl -12(%rbp), %eax

cltd

idivl -4(%rbp)

movl %edx, %eax

testl %eax, %eax

jne .L3

movb $0, -5(%rbp)

jmp .L2

.L3:

addl $1, -4(%rbp)

jmp .L4

.L2:

cmpb $0, -5(%rbp)

je .L5

movl $.LC1, %esi

movl $_ZSt4cout, %edi

call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)

jmp .L6

.L5:

movl $.LC2, %esi

movl $_ZSt4cout, %edi

call std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)

.L6:

movl $0, %eax

leave

ret

__static_initialization_and_destruction_0(int, int):

pushq %rbp

movq %rsp, %rbp

subq $16, %rsp

movl %edi, -4(%rbp)

movl %esi, -8(%rbp)

cmpl $1, -4(%rbp)

jne .L10

cmpl $65535, -8(%rbp)

jne .L10

movl $_ZStL8__ioinit, %edi

call std::ios_base::Init::Init() [complete object constructor]

movl $__dso_handle, %edx

movl $_ZStL8__ioinit, %esi

movl $_ZNSt8ios_base4InitD1Ev, %edi

call __cxa_atexit

.L10:

nop

leave

ret

_GLOBAL__sub_I_main:

pushq %rbp

movq %rsp, %rbp

movl $65535, %esi

movl $1, %edi

call __static_initialization_and_destruction_0(int, int)

popq %rbp

ret

2018. nov. 8. 21:09
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!