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
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 :)
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 :)
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?
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
Kaa tu vareesi p**t savu ASMu :)))