Asambleris...

Jānis Rubļevskis (koko) // 2003. gada 31. decembrī, 22:00 // #Spams // 18 komentāri 

Vakar pie pasniedzēja Sukovska bija pirmā ASM lekcija - zinat iepatikās :) Iemācījāmies apmēram to, ko tas nozīmē, lai arī jau iepriekš Datoru Arhitektūrā kaut ko darījāmies, bet tur bija sviesc pārtaisīt linuxī no c uz asm un tad nokompilēt un palaist. Tagad mēs kaut ko padarīsim pa taisno iekš asamblera...

Nu pac vienkāršākais - izvadam teicienu "Privet bratci alkogoljikji!":

TEXT SEGMENT

ASSUME cs:TEXT, ds:TEXT

ORG 100h

start: jmp go

msg DB "Privet bratci alkogoljikji!", 7, 13, 10, "$"

go: mov ah, 9h

mov dx, OFFSET msg

int 21h

int 20h

TEXT ENDS

END start

Njā... Tad mēs šo tekstu apstrādājam ar tūliem, ko var dabūt šiten (iekšā ir kompilers, linkers un debugers), saglabāju failu ar nosaukumu k.asm.

Atveram command promt, jo taisīsim com failu, jo exe vēl nemāku :) un rakstam sekojošo un iegūstam sekojošāko:

F:\tasm>tasm k

Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland International

Assembling file: k.ASM

Error messages: None

Warning messages: None

Passes: 1

Remaining memory: 460k

Erroru nav, warningu nav - viss pa kedu:) Tikai attiecīgajā direktorijā parādījies fails K.OBJ. Tad ar to arī turpināsim:

F:\tasm>tlink /t k

Turbo Link Version 5.1 Copyright (c) 1992 Borland International

Viss pa kedu - salinkots... Kļūdu nav... Ir parādījies fails K.COM. Starp citu /t pasaka, lai taisītu .com failu. Ir vēl un dažādi parametri, kurus tur var norādīt, bet konkrētajam gadījumam pietiek ar /t.

Nu un tālāk palaižam šo iegūto failiņu:

F:\TASM>k.com

Privet bratci alkogoljikji!

Rezultāts ir acīmredzams... Jāpiebilst, ka dzirdēju arī system beep, jo tas baitiņš 7, ja nemaldos, izsauc pīkstienu :)

Nu ko - rīt sākšu kodēt savam OS kodolu.... LOL

Komentāri

Kaa tu vareesi p**t savu ASMu :)))

tasm sux. vot nasm r0cks! :)

Sukovskis deva arii 2 graamatas, kas vareetu taisnot pirkstus un padariit gaishaakus praatus ;)) uzsuuti meilu tam viirelim, kas iedeva tev savu viziitkarti. Principaa shajaa rakstaa ir atainota pirmaa lekcija ;)

Par to KODOLU man visu laiku smiekli naaki :P

Aha - tev tik aizsūti - es te sistēmas paarlieku kapitāli, jo vienkārši ar to 2k likšanu bija kaut kas ne tā sanācis, bet nu tagad ir ok :)) Lēnītēm atgūstos - tikai vēl būt menedžerim jāpiespiež linuxu lādēt un tad būs pa kedu :)

Tev tach tas l33tais kods ies tikai zem DOSa... nix un bootsektori suukaas bieti

Tak tur tā jau rakstīts, ka zem dosa, jo com jau hren vai daudz kur var palaist... Bet nu vienalga - saakšu mācīties - varbūt kaut ko vairāk ierubīšu...

P.S. interesentiem ieteiktu aizstaigāt uz http://www.menuetos.org/ ... tur nu gan ir asamblera fans/i pastrādājis/uši :))

Nu uz exi būs nedaudz savādāk jo. stack būs jāliek iekšā!

.model small

.stack

.data

message db "Privet bratci alkogoljikji!", "$"

.code

main proc

mov ax,seg message

mov ds,ax

mov ah,09

lea dx,message

int 21h

mov ax,4c00h

int 21h

main endp

end main

he hē... da uz eksi daudz kas būs :)) kā arī laboros saaksim pielietot arī biku punktiņsintaksi... bet nu laiks rādīs :)

A pirmo praktiņu neliksi te? :)

tu manii rosini domu paboreet tajaa fishkaa dziljaak. bet vot, cik slimam jaabuut, lai kodeetu kaut ko liidziigu menuetOS.. psc. es kad shamo palaidu, nokritu no kreesla.

BLā labais koko ka ieliki kompileru. Tieši šodien skraidiju rinķī gribēju uzznāt kur var dabūti to kompileru kas mums skolā. Vakar vienu novilku bet tam cita sintakse. Ok cik tālu esi ar asma mācīšanos?

Shodien bija peedeejaa :P~

Nu fizisko adresi atrast tā kā māku :))

vareeji tam kodaam kaukaadu aprakstu ielikt ar lai taads kaa es ar kauko saprot :)

toč domā, ka gribi to kodu, lai es paskaidroju? Domāju, ka tur nav ko skaidrot - ar punktiņu direktīvu būtu nedaudz īsāk.. Un pie tam - eh tas ir tikai klasiskais variants "Hello World" izvadei... Tā, ka tur vienk nav ko laiku tērēt :)

ehh jau nez kuro reizi velku tasmu no šejienas. nekad nedzēs linku ārā ;D.

tādi tādi kā tu esi galvas sāpes? ;D rofl

sukovskis - eto odin iz teh l\\'udej, u kogo mozg inerten! on viu4il v svoe vremja assembler s nedosintaksisom ot Intel i gnet pal\\'ci. a pro AT&T razgovarivatj vidimo boitsa... 4elovek hotel emu examen sdat\\', ispol\\'zuja sintaksis AT&T vmesto Intela... tak etot Suk... dazhe slushatj ne zahotel. pora emu na svalku v takom slu4ae

Nu nez vai viņu būtu jāmet prom tikai par to, ka neļāva pielietot AT&T. Galu galā ir tā, ka paskāla eksī iekš ada neviens neļauj rakstīt. Tas aptuveni tas pats.

Paud savu subjektīvo viedokli:

Visi lauki (izņemot interneta vietni) aizpildāmi obligāti!
E-pasts publiski netiks parādīts.
Zinot vairākumu, komentāros tagi netiek atrādīti kā tagi. Linki automātiski pārveidosies par spiežamiem (cerams).
Bloga īpašnieks patur tiesības ļaunus komentārus dzēst vai pārveidot cilvēkiem patīkamākā formā, bet tajā pašā laikā neatbild par komentāru saturu.