aku budak baru belajar 0 Report post Posted July 14, 2005 Assalamualaikum.. Ni post pertama aku di putera.com ni.aku tengok di sini ada otai2 asm.jadi aku bukala thread ni untuk berbincang mengenai asm dan win32 programming.oleh kerana aku pun tak tau apa2 pasal ni,jadi biarlah aku mula tanyakan soalan2 bodo aku dulu.sapa2 yang nak bersoal-jawab di sini pun boleh juga,tapi biarlah kena dengan tajuknya.dan biarlah dalam bm. aku tak terer bi.diharap otai2 semua dapat membantu memberikan jawapan yang best.1. assembler yang paling best? yang paling sesuai digunakan untuk orang baru? -masm -tasm -nasm -goasm -lain22. apa itu macro dan bagaimana ia digunakan? apa tujuannya?3. macammana nak ubah kod C kepada asm? contohnya: #define MAX_LEN 256 atau typedef struct { int sign; int hlen; int csum; int len; } MY_FORMAT;dan lain2 lagi laa.. macammana pula kalau struct tu ada bit fields atau union? Quote Share this post Link to post Share on other sites
Ancient One 3 Report post Posted July 18, 2005 w'salam.. selamat datang ke putera.com.IMO, kalau nak ukur tahap ke'besh'an assemblers ni kiter kena laa ader konteks. Kalau nak kira keseluruhan, takde yang paling besh sebab lain assembler lain plak ciri2nya, lain laa kalau hang nak opinion yang berat sebelah . Tapi bagi aku laa, untuk orang yang nak assembler yang mudah digunakan (win32), aku rekemen GoAsm, dan jugak MASM. Kalau ikut sejarah, MASM dan TASM adalah antara yang terawal dan maser tuh TASM memang popular. Sekarang TASM dah tenggelam ngan kemunculan assemblers FREE yang lebih besh. MASM plak still ramai supporters. Kalau hang nak assembler yang mengajar hang erti pengaturcaraan sebenarnya, aku rekemen... cam biasa laa.. FASM (flatassembler.net). Pantas, kecik, free, open-source (bukan under gpl), selalu update, penulisnya suka jawab soalan kat board dengan senang hati dan macam2 lagi laa..2 - Dalam assembler, macro ni kiranya sebijik arahan yang terdiri daripada arahan2 kecik (micro). Tujuannya biasanya adalah untuk memudahkan, mempercepatkan penulisan/penghasilan kod. Contohnya, secara tradisional, arahan asm 'push' cuma trima satu operand jer dan jenis operand ni terhad kepada imm value, register, dan jugak memory location. Tapi dengan kemudahan macro, kiter bleh define satu arahan macro 'push' yang menerima pelbagai jenis operand dan lebih dari satu operand dalam satu baris kod. So, push 0 push eax push dword [eax] bleh ditulis sebagai push 0, eax, dword [eax] malah kiter bleh jugak buat macam push 'Hello World', addr [ebp+8] (pointer to string, runtime effective address) dan macam2 lagi laa.. Dengan keupayaan macro dan preprocessor yang canggih, assembler cam fasm bleh support macam2 sintaks kod yang diinginkan (tapi still limited laa). 3 - Nak translate kod C ke asm kena tau dua2 language. Syntax asm yang bleh digunakan berbeza-beza bergantung kepada assembler yang digunakan. Dalam asm, kod yang simple cam arahan #define yang hang tunjuk tu bleh ditulis sebagai MAX_LEN equ 256 atau MAX_LEN = 256 biasanya dalam masm guna 'equ'. Dalam fasm guna '='.. tapi secara teorinya dua2 pun ok gak.Kalau nak ubah yang kompleks tu kena guna macro laa kot. Kalau hang banyak kena ubah kod C ke asm, e.g Win32 headers dan hang malas nak buat secara manual, ader baiknya hang guna assembler cam MASM, sebab dah ader orang tolong convertkan..soalan aku plak:-hang ni orang mana?-aper pengalaman pengaturcaraan sebelum nih? Quote Share this post Link to post Share on other sites
butaKomputer 0 Report post Posted July 19, 2005 Ancient One, kat mana aku boleh cari maklumat mengenai assembly language sebagai "BEGINNER". sem nie aku amik mata pelajaran tu la.... aduhai..... pensyarah kata student dia 4 kali repeat, nak kena study awal awal nie.... Quote Share this post Link to post Share on other sites
Ancient One 3 Report post Posted July 19, 2005 assembly language bukan satu jer.. depends on processor's arch. ko blajar yang maner? kat library skolah hang tu gerenti ader buku pasal nih. cari jer. Quote Share this post Link to post Share on other sites
butaKomputer 0 Report post Posted July 19, 2005 Aku tak ingat la, pensyarah tu cakap latest proc.. dia punya product aku tak ingat... "malas gi library" kekekek... kau ada tak laman web yang ajo mudah-mudah... senang paham? kalau susah paham nanti tersadai pulak... Quote Share this post Link to post Share on other sites
Ancient One 3 Report post Posted July 19, 2005 tak nak kasi link.. assembly takde basic. math ngan logik atau/dan/etc yang hang blajar kat skolah tu laa basicnya. kalau nak yang basic lebih sikit, tu ler, hang blajar machine's architecture tu. Quote Share this post Link to post Share on other sites
butaKomputer 0 Report post Posted July 19, 2005 Aku jumpa dari silibus kemungkinan aku akan belajar MASM 6.1.1 (microsoft assembler). Ada tak link BEGINNER untuk aku belajar nie... boleh tak kau tolong bagi satu contoh "HELLO WORLD" untuk aku... tima kasih ancient.... Quote Share this post Link to post Share on other sites
Ancient One 3 Report post Posted July 19, 2005 bleh cuba baca art of assembly kat http://webster.cs.ucr.edu/"HELLO WORLD" ngan masm aku tak reti. ngan fasm aku reti . dah dekat 3 taun tak sentuh masm.masm forum kat www.masmforum.com/.kalau hang guna dos, hang kena tau gak dos/bios programming interface. basically ni hang kena guna 'int' laa.. e.g int 21h, int 13h, etc.. untuk reference yang besh, try Ralf Brown's interrupt list (guna jer keyword cam 'interrupt list' kat google, gerenti kluar laa menatang ni). Quote Share this post Link to post Share on other sites
butaKomputer 0 Report post Posted July 19, 2005 Orait, thanks.... Quote Share this post Link to post Share on other sites
aku budak baru belajar 0 Report post Posted July 26, 2005 sorry guys,lambat reply.aku lupa password aku la.ancient,aku suda buat search di internet & banyak juga yg aku belajar.skrg aku ada 3 assemblers dlm simpanan aku - masm, goasm & fasm.aku suda baca fasm punya manual & aku suda cuba sikit2 contoh dia.aku harap ko boleh ajar aku pasal macro dia.aku ndak faham pasal dia punya forward,reverse,equ & lain2 tu la.satu lagi knp saiz kod lain2 bila aku kompil utk program dos & juga windows? cth dalam dos, 'inc eax' jadi 2 bytes tapi dalam windows jadi 1 byte.bukanka arahan yg sama hasilkan bytes yg sama?ancient,-aku orang kk juga.tp skrg aku di s'wak.-aku tau sikit2 C + windows. Quote Share this post Link to post Share on other sites
Ancient One 3 Report post Posted July 30, 2005 bleh ajer.. tang maner tak paham tuh? dalam dos, default code size adalah 16 bit dan default utk win32 adalah 32-bit. bila kita buat operation 16-bit dalam windows, eg inc ax ia akan letakkan prefix 66h menandakan ia adalah operation 16-bit utk inc eax...kalau nak ubah default code size, guna directive use16 atau use32. Quote Share this post Link to post Share on other sites
aku budak baru belajar 0 Report post Posted August 1, 2005 o..skrg aku faham.cuma aku kena baca buku lg la.bole ka ko buat tutor dalam bm pasal asm?kalau lg best,pasal fasm juga.bole? Quote Share this post Link to post Share on other sites
encik pot pet 0 Report post Posted August 1, 2005 aku suggest buku ni - http://www.drpaulcarter.com/pcasm/and takyah baca la bab2 HLA kat http://webster.cs.ucr.edu/bab2 lain mesti baca Quote Share this post Link to post Share on other sites
butaKomputer 0 Report post Posted August 2, 2005 (edited) SOALAN 1Aku ada sikit yang kurang paham mengenai nak proses string. Ada tak cara cammana aku nak directly assign string to register, aku taknak guna loop macam kat bawah nieMOV ESI,0MOV EXC, SIZEOF dariULANG:MOV AL,dari[ESI]MOV kepada[ESI],ALINC ESILOOP ULANGaku nak something macam nie MOV ??,"Assalamualaikum" >?? mewakili registerSOALAN 2Ada tak ringkasan untuk proses cursor nie...MOV AH,02hMOV BH,00MOV DL,25MOV DH,10INT 10h Edited August 2, 2005 by butaKomputer Quote Share this post Link to post Share on other sites
encik pot pet 0 Report post Posted August 2, 2005 (edited) soalan satu:tak boleh..register size dia kecik jermemang kena loopsoalan dua:MOV AH,02hMOV BH,00MOV DX,0A19hINT 10h Edited August 2, 2005 by zeph Quote Share this post Link to post Share on other sites
Ancient One 3 Report post Posted August 2, 2005 kod ko nak pindah string ke memori kan? bleh guna rep movsb (esi dan edi terlibat). Quote Share this post Link to post Share on other sites
butaKomputer 0 Report post Posted August 2, 2005 Ok thanks zeph & ancient....NAK TANYA:Bila kita tulis kod guna assembly, bagaimana kita nak satukan kesemua fail dalam 1 program contoh:main.asm, kira.asm, modul1.asmsoalanya camne kita nak panggil fail kira.asm dalam main.asm...atau dalam body main.asm kita panggil kira.asm (boleh ker?) Quote Share this post Link to post Share on other sites
Ancient One 3 Report post Posted August 3, 2005 in most assembler u can use include directive.. tugasnya bleh katakan sama jer ngan ko pastekan isi kandungan fail tu pada line tersebut. Quote Share this post Link to post Share on other sites
butaKomputer 0 Report post Posted August 3, 2005 (edited) Aku try buat macam kod kat bawah, tak boleh pun... kalau c boleh.... Ancient macam kau cakap boleh letak kat mana mana.... macam mana?##############################################TITLE panggilINCLUDE irvine32.inc.dataayat BYTE "Testing",0.codemain PROCMOV EDX,OFFSET ayatINCLUDE "fail1.asm" ;aku dah try fail1.incexitmain endPend main Edited August 3, 2005 by butaKomputer Quote Share this post Link to post Share on other sites
Ancient One 3 Report post Posted August 4, 2005 tak brape paham soalan.. aper yg takleh? aper error yg kluar? Quote Share this post Link to post Share on other sites
butaKomputer 0 Report post Posted August 4, 2005 Sori ancient, hari tu aku build tak boleh bila hari nie aku build takda error mungkin aku tersilap build 16bit kot... tapi aku heran la... aku dah try build banyak kali semalam.... apa apa pun thanks, cara tu boleh jalan... Quote Share this post Link to post Share on other sites
Ancient One 3 Report post Posted August 4, 2005 u're welcome.. biasa ler tuh.. aku suka guna fasm sebab kalau ader aper2 silap aku cuma perlu periksa source jer, commandline argument takyah.. hehehe.. cam MASM banyak dia jer option.. aku pon confuse. Quote Share this post Link to post Share on other sites