Asambleris... Jānis Rubļevskis (koko) / 31.12.2003. 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:

koko @ 30.10.2007. 17:14

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.

@ 30.10.2007. 14:36

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

mi @ 13.12.2005. 22:51

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

koko @ 05.01.2005. 14:42

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 :)

Semo @ 05.01.2005. 13:45

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

koko @ 05.01.2005. 12:04

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

cannibal @ 05.01.2005. 11:58

Shodien bija peedeejaa :P~

cannibal @ 21.10.2004. 10:02

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?

ManInBlack @ 11.10.2004. 15:40

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.

kurc @ 11.10.2004. 15:40

A pirmo praktiņu neliksi te? :)

koko @ 11.10.2004. 15:40

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

st00rm @ 11.10.2004. 15:40

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

koko @ 11.10.2004. 15:40

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 menuetos.org/ ... tur nu gan ir asamblera fans/i pastrādājis/uši :))

Kirils @ 11.10.2004. 15:40

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

koko @ 11.10.2004. 15:40

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 :)

garaam @ 11.10.2004. 15:40

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

bubu @ 11.10.2004. 15:40

tasm sux. vot nasm r0cks! :)

Gastonz @ 11.10.2004. 15:40

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


Nu pasāpini mani - tu jau gribi:

* Visi lauki (izņemot tavu lapu) 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.