KIIV napsal:
To Anonymní uživatel : tme.cz .. pak potencialne i farnell ale ten sem jeste nezkousel
diky, tme je o dost lepsi
KIIV napsal:
To Anonymní uživatel : tme.cz .. pak potencialne i farnell ale ten sem jeste nezkousel
ahoj,
sice nejde o procesor AVR, ale dal jsem to sem... Takže je možno u nás někde koupit procesor Z8? díky
Stormwind :P napsal:
Ja som si postavil Ponyprog http://www.lancos.com/prog.html, k mojej najvyzsej spokojnosti, facha paradne. A okrem AVR programuje aj PIC, radu 89, 90 , a EEPROM pamate.
To o-lox :
mov byte [0xABCC],0 - pis jako mov [0abcch],0 ; ale uz si to mohl pochytit
což to už jsem doopravdy pochytil, problém je v tom, že druhou varianta také nejde....
byte je uvnitr hranate zavorky nebo vne podle rezimu masm/ideal
+ zvolil si dost netradicni rezim 640*400
dále nekombinuj DOS textový výpis int21 a grafickou obrazovku, když už si přeskočil texťák, tak musíš zapisovat přes A000:0000
a k tomu všemu ne přímo ale přes segmentový registr kterej naplníš na A000. Text vypíšeš nějakým fontem, ani nevim jestli na to má Vesa nějakou funkci, já píšu kód na text vlastnoručně. A je to dost kódu.
jo myslím, že tay funkce na fonty tam jssou.
Protected mod umoznuje prepnout na realny rezim virtualni 86ky a to že se ve skutečnoti zapíše to z 0ABCC nekam jinam mne ještě nikdá netrápilo.
bx,si,di,bp registry pro adresaci nemusíš používat když si dáš překlad 32 bitově , eax,ecx,edx, jdou kliďánko používat. [eax+20],[esi+eax], ...
Celkově jdou tvoje výkony ke dnu. Dělej něco do hloubky. Makro ti napíšu, když uvidim že to nebude kvuli "ahoj". Zkus si i pohledat.
:-)) jo tuhle větu jsem čekal...dej mi čas a já něco stvořim nebo dej mi typ na něco co bych mohl naprogramovat, mám na to slabou fantazii.
To Anonymní uživatel :
sry, to jsem psal já...
Dneska jsem začal pokusem o inicializaci vesa režimu. No jo jenomže, se to chová nějak podivně, chvili mi to šlo, pak zase ne...aniž by jsem měnil kód...no nic dyžtak k tomu tady trochu něco napiš. Taky nevím jak zapsat konkrétní byte na konkrétní adresu v paměti. PS: asi mi pořád něco uniká, budu si muset přečíst něco o základech assembleru...a teď jdu pokračovat v studierování vesa módu.
test. příklad:
xor ax,ax
mov al,02h
mov ah,4fh
mov bx,100h
int 10h
lea dx,text
mov ah,09h
int 21h
mov ah,00h
int 16h
int 20h
text db 'ahoj$'
EDIT: takhle by měl vypadadat zápis na konkrétní adresu:
mov byte [0xABCC], 0
jenomže ten standartní borlanďáckej překladač(TASM) z roku '89 mi to nepřeloží. PS: a i kdyby přeložil,nebude tu taky problém v tom, že ve windowsech jede procesor v protected módu? Pokud ano, nemůžu si jen tak, něco napsat někam do paměti....To 16bit :
Dneska jsem začal pokusem o inicializaci vesa režimu. No jo jenomže, se to chová nějak podivně, chvili mi to šlo, pak zase ne...aniž by jsem měnil kód...no nic dyžtak k tomu tady trochu něco napiš. Taky nevím jak zapsat konkrétní byte na konkrétní adresu v paměti. PS: asi mi pořád něco uniká, budu si muset přečíst něco o základech assembleru...a teď jdu pokračovat v studierování vesa módu.
test. příklad:
xor ax,ax
mov al,02h
mov ah,4fh
mov bx,100h
int 10h
lea dx,text
mov ah,09h
int 21h
mov ah,00h
int 16h
int 20h
text db 'ahoj$'
To o-lox :
No teď jsem na to tady koukal a popravdě se v tom moc nemůžu vyznat. Zjistil jsem, že vůbec neumim makra, že vůbec neznám pár instrukcí apod. No a i když znám, tak některý věci fakt nevim co dělaj... Ještě nad tim musim trochu podumat...Ale stejně mi dneska nějak hlava nebere!
Jo a TASM mi nechce přeložit regisr FS, píše nedefinonaný symbol!
A SEGMENT
ASSUME CS:A,DS:A
ORG 100H
.486
START:
mov ax,0b800h
mov fs,ax
int 20h
A ENDS
END START
KIIV napsal:
To 16bit : cmos verzi 7400 sem daval jen jako priklad z vlastni zkusenosti... ty stary bipolarni verze si mohl nechat bez pripojeni a jelo to v pohode stejne potrebovali na zmenu stavu skoro 1 mA :D a kdyz daly na vystupu treba 10-20mA tak z toho plynul tzv, logicky zisk (tj pocet dalsich hradel ktery utahne vystup) :)
KIIV napsal:
pokud mas zaplej pullup tak logicka 1
pokud neni zapojenej tak prijima jakejkoliv sum z okoli... to se muze projevit i poradnym zvetsenim spotreby...
treba takovy 74HCT00 v klidu berou par mikroamper ale jak nechas nejakej vstup nezapojenej muze to byt i v miliamperech
To o-lox :
No tak sem kouknul na int 10h v SH helpu. musim říct, že mě to osvětlilo pár věcí a něco sem se zase naučil....Jo když si vzpomenu na nějakou jednoduchou starou 286tkovou hru, kde byla udělaná taková ta kostičková grafika a všichni se tomu smáli, to by asi bylo docela maso stvořit pomocí int 10h. Já myslim, že na to budou ještě jiný vychytávky, který neznám.zatim...
Psal si něco o přímém zápisu do graf. paměti.tak to trochu nadhoď...
Zde je muj pokusnej prográmek(je to kokotina ,ale umožnila mi vidět jak pracuje int 10h):
A SEGMENT
ASSUME CS:A,DS:A
ORG 100H
.286
start:
mov al,13h
mov ah,00h
int 10h
mov bh,0
mov bl,5ah
mov ah,0bh
int 10h
mov dx,0
kresli:
mov bh,1
inc dx
mov cx,34
mov al,17h
mov ah,0ch
int 10h
cmp dx,cx
jne kresli
mov al,50h
mov bl,32h
mov ah,0eh
int 10h
lea dx,pre
mov ah,09h
int 21h
mov ah,00h
int 16h
mov dl,al
mov ah,00h
int 16h
mov dh,al
cmp dh,dl
je znova
jne dale
znova:
mov al,0fh
mov ah,00h
int 10h
lea dx,tes
mov ah,09h
int 21h
mov ah,00h
int 16h
mov dl,6fh
mov dh,al
cmp dl,dh
je jumpstart
jne znova
jumpstart:
jmp start
dale:
mov al,12h
mov ah,00h
int 10h
lea dx,tes1
mov ah,09h
int 21h
mov ah,00h
int 16h
mov dl,65h
mov dh,al
cmp dl,dh
je konec
jne dale
konec:
int 20h
pre db 'stiskni dve klavesy zasebou$'
tes db 'jsi chytrak?|||| stiskni :o: $'
tes1 db 'well and good bye|||| press :e:$'
a ends
end start
PS: klávesnici mám PS/2(ne DIN konektor),používám ještě jednoho desktop celera na 2,8 GHz....
PS2: píšeš, že jedeš na dosu 6.22. To já tu mám taky na 286tce(zrovna nepoužitelná bohužel), ale jinak výtečnej stroj na PROGRAMování v ASM . Na učení v ASM je ale na nic, pač bez multitaskingu jsou určitý věci fak zdlouhavý. Třebas přepnutí z SH helpu do editu apod...lepší je si vedle pustit noťas...bla.bla.konec
To 16bit :
Dneska jsem se konečně zase na chvilku dostal k ASM.
něco malinko jsem si přečetl o portech(instrukce IN,OUT). Jenomže problém je v tom, že tohle zrovna pod Win XP nefunguje, nešlo by to nějak obejít???
tady je takovej krátkej prográmek(ty výstupy by měli rozblikat ledky na klávesnici(opsal jsem to z návodu na netu :-) ).
Chtěl jsem ale odzkoušet ještě opakování , tzn. blok kódu se zopakuje podle hodnoty v BX. To jede v pohodě, až na to, že pokud chci pokaždé tu hodnotu vypsat na obrazovku, tak se program zblázní a začne vypisovat kraviny...
A SEGMENT
ASSUME CS:A,DS:A
ORG 100H
.286
start:
level1:
mov al, 0edh
out 60h,al
mov al,7h
out 60h,al
mov bx,65535
add cx,1
cmp cx,bx
je konec
mov dx,cx
mov ah,09h
int 21h
jmp level1
konec:
int 20h
a ends
end start
To o-lox :
díky, pokud se ti bude chtít pošli to na mail co mám v profilu.
určitě udělám nějakej další prográmek, ale taky mám ještě spoustu jiný práce, takže to bude asi chvilku trvat, než bude čas..ale rozhodně nehodlám tohle vlákno umrtvit!
Jo a taky se musim naučit nějaký další instrukce apod. a něco ještě počíst někde na netu, abych věděl co a jak dál...protože knížky o tom doma žádný nemám.
To o-lox:
čau, sry, musel jsem se trochu odmlčet....
Projel jsem si to hex-editorem, vypadá to celkem jasně. DW 21CDh jsem si ještě ze srandy poupravil na DW 10000111001101b. No a už jsme skoro doma... jo jenomže co to znamená to DW a označení soustavy, to b? Já vim, že teď už asi zacházim trochu do extrému, ale prostě mě to tak nějak zajímá a když to budu vědět napíšu to přerušení komplet binárně a překladač mě za to bude milovat, protože s tím nebude mít vůbec žádnou práci :-)))
Jo a mimochodem, nemel bys nejakej přehlednej seznam pro další instrukce, přerušení, fce atd....? Int 21h = DW 21CDh to už vím, ale co další???
díky
To o-lox :
:-)))
jj, už mi to jde. Problém je v tom, že vidím asm podruhé vživotě a připadá mi celkem zajímavý. Narovinu ještě ani pořádně nevím co int 21h dělá,
a proč zde být má:
text2:
lea dx,nequal
mov ah,09h
int 21h
a zde zase ne:
start:
mov ah,00h
int 16h
mov dh,al
i když možná už vím, 09h je funkce dosu, a proto musí být voláno přerušení int 21h. Kdežto 00h souvisí s přerušením int 16h klávesnice.
PS: jenom taková otázečka, jde v assembleru přejít ještě na nižší(nejnižší) úroveň jako třeba v Delphi jakožto vyšším prog. jazyku jde vepsat i blok ve strojových instrukcích. Tzn. co je to vlastně mov, lea nebo mov dx,ax apod. ve dvojkové soustavě? :-)) to už pak musí být docela na bednu, ale v počátcích počítačů, před assemblerem se tak programovalo...
To o-lox :
RE1:
díky, je to jasné...
-----
Int 21h je tam podle mě nutný, protože jinak se v případě stisku stejných kláves místo rovno napíše rovnorovno. Jinak samozdřejmě funguje program i bez toho přerušení, bohužel pořád se stejnými chybami. ...
To 16bit :
No a pokračuju o kousek dál...
Jednoduchý program, který při stisku stejné klávesy vypíše rovno a při stisku dvou různých kláves nerovno.
A SEGMENT
ASSUME CS:A,DS:A
ORG 100H
.286
start:
mov ah,00h
int 16h
mov dh,al
int 21h
mov ah,00h
int 16h
mov dl,al
int 21h
cmp dh,dl
jne text2
je text
text:
lea dx,equal
mov ah,09h
int 21h
jmp konec
text2:
lea dx,nequal
mov ah,09h
int 21h
konec:
int 20h
key db 0
key2 db 0
equal db 'rovno$'
nequal db 'nerovno$'
a ends
end start
....no jo , jenomže stisknu třeba w,w program se vykoná vpořádku nebo w,e taktéž, s,s je OK, ALE a,s už není ok, program se začne chovat nestandartně(vypisuje nesmysly). Nebo když první písmeno stisknu f okamžitě vypíše : kontrolní blok souboru (fcb) není k dispozici. To mi přijde docela zajímavé...
edit: proč není možno porovat přímo proměnné(např. cmp key,key2) ?
To o-lox :
tomu rozumím. Jenomže teď jsem to zkusil(použít pro proměnné Dl,Dh) a program se mi vůbec nepřeložil. To jsem teda zrovna nečekal. Chápu, že třeba Ah se požívá pro fce DOSu, ale Dl a Dh by snad mohli fungovat...
...
lea dl, text1
lea dh,text2
mov ah,09h
int 21h
int 20h
text db 'a'
text db 'b$'
...
To o-lox :
rozhodně to AXko je kravina, ale pokud bych chtěl vypsat takhle dva řetězce za sebou pomocí DXka, tak to taky nejde.
např:
...
lea dl, text
lea dh,text1
mov ah,09h
mov 20h
...
no assembler jsem viděl tak dvakrát v životě, tak sry jestli otravuju z blbejma dotazama....
o-lox napsal:
Řetězec musí být ukončen znakem '$' pro službu 09h DOSu !
S Pentiem 4 neni určitě problém.
a vymaž si to : mov ax,offset text1 ; to poustis do luftu jakousi jalovost
mám jednu otázku ohledně TASM,TLINK. Zkouším s tímto překladačem kompilovat .com programy na mém notebooku Pentium 4.
můžu si třeba vymyslet tento jednoduchý příklad:
A SEGMENT
ASSUME CS:A,DS:A
ORG 100H
.8086
start:
lea dx,text
mov ax,offset text1
mov ah,09h
int 21h
int 20h
text db 'ahoj'
text1 db 'assembler'
a ends
end start
tzn. hodnoty proměných mám v dx a ax, potom se vyvolá výpis na obrazovku a program skončí. Po spuštění by se mi tedy mělo zobrazit "ahoj assembler" a konec. Jenomže mě se za tímto zobrazí ještě dalších cca. 100-200 různých ASCII znaků, co tam nemají co dělat. Může to mít nějakou souvislost s tím, že jedu na Pentiu 4 apod.?
díky
Ahoj, mám problém s třídou Console v tutoriálu
http://java.sun.com/docs/books/tutorial/essential/regex/test_harness.html
Když tento příklad spustím z Eclipse, tak mi vyhodí error "No console" z první IF podmínky, takže se mi nevytvoří instance na Console.
Když to spustim z příkazové řádky, vše běží v pořádku. Nevíte, jak nastavit Eclipse, aby to fungovalo i z něj?
Díky za rady.
Nejlepší je od Herouta, má víc dílů, takže se můžeš postupně naučit všechno. Učí nás a je to skvělý týpek, všechno skvěle vysvětlí stejně jako v knize.
Ale doporučuji pročíst více knih, v každé je to jinak podané, Herout se pak dá dobře použít, když něco zapomeneš. Pro oživení, jak se s čím pracuje.