Fórum témák
- • Quantum véletlenszámgenerátor
- • Alternativ HE találkozó(k)
- • NYÁK-tervező programok
- • Arduino
- • Műhelyünk felszerelése, szerszámai
- • Erősítő mindig és mindig
- • V-FET és SIT erősítő kapcsolások
- • Számítógép hiba, de mi a probléma?
- • Skoda Octavia elektromos probléma
- • Felajánlás, azaz ingyen elvihető
- • Villanyszerelés
- • Kombikazán működési hiba
- • Ponthegesztő akkumulátorcellákhoz
- • Kazettás magnó (deck) javítása
- • Kávéfőzőgép hiba
- • Hangsugárzó építés, javítás - miértek, hogyanok
- • DCF77 óra
- • Audiofil, High End Audio
- • LCD kijelző PC-re
- • 555-ös IC-s kapcsolások
- • Rádióamatőrök topikja
- • DC motor/lámpa PWM szabályzása
- • Elfogadnám, ha ingyen elvihető
- • LM3914
- • Mosogatógép hiba
- • Akkumulátor töltő
- • Kapcsolóüzemű táp 230V-ról
- • Quad 405-ös erősítő tapasztalatok és hibák
- • Műveleti erősítő
- • Klíma beszerelése, fűtés-hűtés házilag
- • Órák csőből - Nixie, VFD, stb.
- • Rádiósmagnók (javítás)
- • Digitális mérleg
- • MOSFET-ek
- • ZC-18 kazán
- • Frekvenciaváltó
- • Castone erősítő javítás
- • Építsünk mi is elektromos autót!
- • Érdekességek
- • Multiméter problémák
- • RDS jel dekódolása
- • Erősítő építése elejétől a végéig
- • Magyarokamarson
- • LM1875, LM3875, LM3886, stb. TI végerősítők
- • Vicces - mókás történetek
- • Videoton RA 6363 és EA 6383 javítása
- • Tápegységgel kapcsolatos kérdések
- • Androidos okos telefonok
- • CD lejátszó javítás
- • Vitatkozzunk! / Beszéljük meg!
- • 3D nyomtatás
- • HESTORE.hu
- • Gázkazán vezérlő hibák
- • Klíma szervizelés, javítás
- • Savas akkumulátor
» Több friss téma
|
"Készítsen szorzót, ami bekér a billentyűzetről két számjegyet és összeszorozza őket. A jelzőlámpát, mint egy dobókocka egyik oldalát felhasználva írassa ki a végeredményt."
Ezt sms32v50 nevű Asm simulatorban kéne megoldani.
Sajnos nem sokat értek az assemblyhez, remélem tud valaki vmi egyszerű megoldást. Mert gondolom nem valami nehéz a feladat, csak 0 tudással elég nehéz nekem.
Előre is köszönöm a segítséget!
--------------
István
Ez valami házi feladat akar lenni?
Én erről a bigyóról még nem hallottam, de rákerestem :google: és ezt a magyar nyelvű leírást találtam. Ahogy nézegetem ebben több példa is van és fokozatosan veszi át az egyes utasításokat. Szerintem ezt kellene átnézned. Azt ne nagyon várd, hogy helyetted valaki megírja, ez a te feladatod!
Szia!
Köszönöm, ezt az oldalt nem találtam. :-S
És igen ez egy Házi feladat lenne.
--------------
István
Amit MPi-c belinkelt neked az előbb, az ugyanennek a manualnak a tartalom szerinti magyar fordítása.
(Bár gyanítom, hogy ezt a főiskolán is ajánlották már nektek.)
üdv!
Szeretnék egy kicsit belemerülni a programozásba és nem tudom mivel kezdjem. Tudnátok valami irományt ajánlani, amiből tanulhatok? Jó lenne, ha a netről letölthető lenne. Az assembly-al már egy nagyon pic-it foglalkoztam.
Szeva!
Ha programozásra adod a fejed, ne ugorj a közepébe!
Amúgy is az assembly-ben szerintem azok tudnak csak tökéleten programozni, akik létrehozták magát a nyelvet ...
De talán ha C vel kezdesz az jó lesz. Bár jómagam annak idején C64-en kezdtem basic-kel, majd PC-én TurboPascal-lal folytattam, de ezek természetesen már a múlté. Mondjuk a Pascal sokban hasonlít a C re, de csak DOS alá tudsz programokat írni vele.
Szakirodalmat pedig nézek majd a neten és belinkelem, mivel sajnos én nem rendelkezem digitális formában vele.
Addig is üdvözletem!
Tamás
1. Assemblyben nem csak azok tudnak programozni, akik a nyelvet létrehozták, hanem azok is, akik egy kicsit foglalkoztak azzal, hogy hogyan működik a processzor, hogyan történik egy utasítás végrehajtása, mi mire hat ki a processzoron belül, stb.
2. Ne keverjük a dos-t a parancssorral. Pascallal parancssori programokat lehet írni
3. A Delphi a Pascal utódja grafikus kezelőfelülethez.
kösz előre is a linkekért
Köszi a javítást, és részben igazad is van.
Én fogalmaztam rosszul, valóban a pascallal parancssori programokat lehet írni. Igazából a DOS kifejezést a program jellegére értettem.
Azt pedig én is nagyon jól tudom, hogy a Delphi a Pascal utódja. Én a TurboPascal névre hallgató fejlesztő környezetre értettem a megállapításomat.
Az assmebly-ről pedig beláthatod, hogy nem sokan tudnak benne igazán jól programozni.
Tehát a megígért szakirodalom. Találtam, nem a saját feltöltésem! Bár jómagam egy elég korrekt C könyvvel rendelkezem, nem akarom beszkennelni
Programozási eBookok többek között Assembly, C/C++, Delphi, PHP, ASP, Java, HTML és CSS témakörben.
http://rapidshare.com/files/102001337/prog.part1.rar
http://rapidshare.com/files/102001416/prog.part2.rar
http://rapidshare.com/files/102000983/prog.part3.rar
Pass: Squito
Pár új könyv. A témakörök többek között: Office, PHP, C++, Flash 5, Linux, Internet gyerekeknek, Novell és még néhány érdekesség.
http://rapidshare.com/files/105544644/EBSz.rar
Pass: Squito
Örök hálám üldözni fog
Tényleg kösz a linkekért!
Egy kis segítséget szeretnék kérni Assembly programozásban.
A feladat a következő:
10 elemű szavas tömb elemeinek 8-cal oszthatóvá tétele.
A megoldás:
A tömbelemek alsó 3 bitjének nullázása. Én ezt az SHL paranccsal oldottam meg.
A probléma:
Írtam rá egy programot, de a fordító folyamatosan hibát ír az "SHL BX, 3" sorra. Mindig azt a hibaüzenetet kapom, hogy "62.ASM(24): error A2052: Improper operand type". Pedig többször is utánanéztem, és SHL parancsnál igenis lehet azokat az operandusokat használni, amiket én is használtam.
Csatoltam a példaprogramot is, ha valaki hasznát venné.
Előre is köszönöm a segítséget.
Szerintem sokkal egyszerubb lenne egy AND, de te tudod.

Nalam sem forditotta le, csak akkor, ha cl szerepel szamlalokent, tehat a CX also byte-ja.
Van valami kulonos oka annak, hogy 16 bites modban dolgozol?
Szia!
shl Bitwise left shift (same as sal)
Syntax:shlop, 1
shlop, CL
op: register or memory
Action: If operand is 1, op = op << 1
If operand is CL, op = op << CL
Flags Affected: OF, SF, ZF, AF=?, PF, CF
Az SHL a 8086 -on a regiszter megadása után csak az "1" konstans értékkel lehet paraméterezni. Legalább 80286 kell az shl reg,immed8 formához. Rá kell beszélni a fordítót, hogy 80286 utasításokat fordítson...
Jee es tenyleg!
Oda kell pottyinteni a progi legelejere, hogy
.386p
es tadaaaam!
Nekem úgy is jó lenne, csak arra nem sikerült rájönnöm, hogy kell AND-del alsó 3 byteot nullázni.  De ha a belinkelt progimat a te elképzelésed szerint módosítanád, azzal sokat segítenél.
Ha az alsó 3 bitre gondoltál, akkor ezt a módszert Maszkolásnak hívják. AND műveletet hajtasz végre, egyik operandus a forrás érték, másik a "maszk". A maszk egy ugyanannyi digitből álló szám, mint az eredeti forrásoperadnus. Ahol ki szeretnéd nullázni az eredeti értéket, oda 0-t raksz a maszkban, a többi helyre 1-et, így ahol 1 van, az érték változatlan marad, a többi helyiértéken 0 lesz. PL:
forrás:10111101 & maszk:11111000 = 10111000.
Nagyon gyors, mert a logikai műveleteket minden processzor 1 ciklus alatt végrehajtja.
A programod pedig annyi, hogy végigmész a tömb minden elemén, és az adott maszkkal (11111000) AND kapcsolatba hozod az elemeket.
Ugy, hogy AND AX,0FFF8h
vagy regiszter nelkul AND tabla[SI],0FFF8h
Ha meg a cim is realtiv AND [SI][BX],0fff8h
De a feladatot hulyen fogalmaztak meg neked (valoszinuleg ez valami hazi feladat, amit velunk akarsz megoldatni). De hogy ezeket ki talalja ki?
Hogy lehet egy nyolccal nem oszthato szamot nyolccal oszthatova tenni??? Ugyanis barmilyen modszer eseten mar nem az eredeti szam lesz belole. Talan a 3-al felshifteles jar hozza a legkozelebb, ugyanis akkor (13 bitbe belefero szam eseten) kesobb visszaaallithato az eredeti szam, mig az also harom bit nullazasanal elvesznek ertekes jegyek.
Köszi a segítséget, közben reggelre én is rájöttem.
Sziasztok látom hogy halott a topic de nem találok olyat ahol kifejezetten az én problémámmal foglalkoznak. Sajna tudás hiányában belefutottam egy olyan cuccba amibe assembly nyelven megvan a program de nem teljesen tudom értelmezni. Esetleg ha valaki lenne aki tud nekem segiteni átnézni illetve ami hibát én véltem észrevenni azt kijavitaná nekem akkor azt megköszönném. Egy RC szabályzorol van szó ahol a bejövö jelet kis intervallumban értelmezi és ezt az intervallumot kéne kitágitani.
Sziasztok!
Házi feladatban 8085-öt kell programoznunk és a feladat szerint eredményként a Zero flaget kell állítani.
Maga feladat már megvan,de nem tudom, hogy hogyan állíthatnám be a zero flaget tetszés szerint.
Előre is köszönöm a segítséget.
Ha lehet a statusregisztert kozvetlenul irni, akkor ugy.
Ha nem lehet, akkor egy nulla eredmenyu muvelettel. Mondjuk 1-bol kivonsz egyet.
SUB A paranccsal működhet?
Ha jól értem akkor ez kivonja az akkumulátorból önmagát, de nem vagyok benne biztos, hogy ez a parancs helyes.
Tehat csupan elmeleti a kerdes?
Akkor adatlapot, procileirast elo es benne lesz.
De minden olyan utasitas jo, ami allitja a Z flaget 0 eseten.
Köszönöm!
Úgy tűnik sikerült.
Még a végén egyszer megtanulom a nyelvet.
Sziasztok! Annyira nem értek az assembly-hez, szeretném ha segítene valaki módosítani egy kódot. Szóval adott egy Atmega8515 ami UART-on fogad adatokat, pontosabban egy fényvezérő jeleit fogadja DMX szabvány szerint. A jelfogadás és visszajelzés ledekkel szuperűl működik, csak nekem a következő kódot úgy kéne módosítani, hogy legyen két független PWM generálva, egyik volna állandóan 50% kitöltéssel, 1Hz-től 16 Hz-ig állítható kellene legyen, másik PWM nagy frekvenciás kellene legyen, és állítható kitöltéssel, mert led fényerőt kellene szabályozzon. A kódban a "DMX_FIELD" értéke 0-255 lehet, ez adja meg hogy az első PWM frekvenciáját (jó volna ha pl 0-tól 16-ig OFF-on volna az első PWM).
A "(DMX_FIELD+1)" adná meg a második PWM kitöltési tényezőjét, ugyancsak 0-255 értéket kaphat UART-ból. /**** A P P L I C A T I O N N O T E ************************************
*
* Title : 9ch DMX LED PWM-Dimmer
* Last updated : 2016.Aug.15
*
* written by hendrik hoelscher, www.hoelscher-hi.de
***************************************************************************
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version2 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
If you have no copy of the GNU General Public License, write to the
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
For other license models, please contact the author.
;***************************************************************************/
.include "m8515def.inc"
;Register and Pin definitions
.def tempL = r16
.def tempH = r17
.def Flags = r18
.def DMXstate = r19
.def null = r2
.def status = r21
.def ind_count = r3
.def blink = r4
.def PwmCnt = r20
.def SREGbuf = r5
.def ChaseFine = r6
.def ChaseRes = r7
.equ StrobeFreqH = 0x80
.equ StrobeFreqL = 0x81
.equ StrobeBuf = 0x82
.equ OldStepH = 0x83
.equ OldStepL = 0x84
.equ NewStepH = 0x85
.equ NewStepL = 0x86
.equ StepCnt = 0x87
.equ ChaseCnt = 0x88
.equ ChaseSeed = 0x89
.equ LED1= PD7
.equ BIT9= PE2
.equ DMX_FIELD= 0x60 ;SRAM-Beginn
.equ DMX_CHANNELS= 3
.equ PWM_FIELD= 0x70
.equ F_OSC= 8000
.equ FLASH_DURATION= 400
.equ IND_OFFSET= 12 ;Offset für indicator-Timer (14Hz)
#define CHS_SPD (0x600)
#define RATE (0x500)
;#define PAT0 (0x400)
;#define PAT1 (PAT0 +0xA)
;#define PAT2 (PAT1 +0xA)
;#define PAT3 (PAT2 +0xA)
;#define PAT4 (PAT3 +0xA)
;#define PAT5 (PAT4 +0xA)
;#define PAT6 (PAT5 +0xA)
;#define PAT7 (PAT6 +0xA)
;***** special Flags
#define VALID_DMX (0)
#define SIGNAL_COMING (1)
#define doIND (5)
#define BLACK_OUT (6)
#define DATA_REFRESHED (7)
;interrupt vectors
.org 0
rjmp init ;reset vector address
reti ;External Interrupt0 Vector Address
reti ;External Interrupt1 Vector Address
reti ;Input Capture1 Interrupt Vector Address
rjmp strobe ;Output Compare1A Interrupt Vector Address
reti ;Output Compare1B Interrupt Vector Address
reti ;Overflow1 Interrupt Vector Address
rjmp pwm ;Overflow0 Interrupt Vector Address
reti ;SPI Interrupt Vector Address
rjmp get_byte ;UART Receive Complete Interrupt Vector Address
reti ;UART Data Register Empty Interrupt Vector Address
reti ;UART Transmit Complete Interrupt Vector Address
reti ;Analog Comparator Interrupt Vector Address
reti ;External Interrupt2 Vector Address
reti ;Output Compare0 Interrupt Vector Address
reti ; EEPROM Interrupt Vector Address
reti ; SPM complete Interrupt Vector Address
reti ; SPM complete Interrupt Vector Address
; INIT
init:
; Stack
ldi tempH,high(RAMEND)
ldi tempL,low(RAMEND)
out SPH,tempH
out SPL,tempL
; WATCHDOG
wdr
ldi tempL, (1<<WDE)|(1<<WDCE)
out WDTCR, tempL
ldi tempL, (1<<WDE)|(1<<WDCE)|(1<<WDP2)|(1<<WDP1)
out WDTCR, tempL
wdr ;set prescaler @0,5s
; PortA
ser tempL
out DDRA, tempL
clr tempL
out PortA, tempL ;low Outputs
; PortB
ldi tempL, 0b00000011
out DDRB, tempL
ldi tempL, 0b11110100
out PortB, tempL
; PortD
ldi tempL, 0b10000100
out DDRD, tempL
ldi tempL, 0b01111000
out PortD, tempL ;DMX & Spare , LED1 on
; PortE
ldi tempL, 0b00000001
out DDRE, tempL
ser tempL
out PortE, tempL ; LED2 off, BIT9 & OPTION Pullup
; Timers
ldi tempL, (1<<CS01) ;set counter0 @clock/8 frequency
out TCCR0, tempL
clr tempL
out TCCR1A, tempL
ldi tempL, (1<<CS12)|(1<<WGM12) ;set counter1 @clock/256 frequency, CTCmode
out TCCR1B, tempL
ldi tempL, (1<<TOIE0) ;aktivate overflow interrupt
out TIMSK, tempL
rcall init_dmx
; set Register
clr null
clr blink
com blink
mov ChaseFine, blink
ldi tempL, IND_OFFSET
mov ind_count, tempL
ldi PwmCnt, 0xFF
ldi Flags, 0 ;clear Flags
sts StepCnt, null
sts NewStepH, null
sts NewStepL, null
ldi tempL, 1
sts ChaseCnt, tempL
sts ChaseSeed, tempL
mov ChaseRes, tempL
wdr
sei
; a kommentet innen vedd kii!
main: sbrc Flags, doIND
rcall indicate
rcall eval_strobe_freq
;rcall chase
rjmp main
;****************************** LED INDICATOR ***********************************
indicate:
cbr Flags, (1<<doIND) ;clear flag
rcall chase
dec ind_count
breq ind_a
ret
ind_a:
wdr ;reset Watchdog
;working LED
sbrc Flags, DATA_REFRESHED ;should flash?
rjmp data_flash
sbi PortE, LED2 ; LED off
Error_LED:
sbrc blink, 0 ;wenn erstes bit HI
rjmp on
sbi PortD, LED1
rjmp ind_tst
on:
cbi PortD, LED1
ind_tst:
lsr blink
ldi tempL, 1
cp blink, tempL
brne no_ind
;wenn durchrotiert (blink = 0)
ldi tempL, 0b10000000
sbrs Flags, VALID_DMX
ldi tempL, 0b10001010
sbrs Flags, SIGNAL_COMING
ldi tempL, 0b10000010
mov blink, tempL
cbr Flags, (1<<VALID_DMX)|(1<<SIGNAL_COMING)
no_ind:
ldi tempL, IND_OFFSET
mov ind_count, tempL ;plant prescaler
ret
data_flash:
cbr Flags, (1<<DATA_REFRESHED)
sbis PortE, LED2 ;blinken grün
rjmp off
rjmp Error_LED
off:
rjmp Error_LED
;****************************** strobe frequency ***********************************
eval_strobe_freq:
lds tempL, DMX_FIELD ;get 1st DMX ch
rjmp esf_2
ret
esf_2:
sts StrobeBuf, tempL
cpi tempL, 32
brlo esf_no_strobe
;cpi tempL, 245
;brsh esf_sync
subi tempL, 45 ;0-200 allowed
ldi ZL, low(RATE*2) ;get freq from table
ldi ZH, high(RATE*2)
add ZL, tempL ;add low byte
adc ZH, null ;add with carry high byte
add ZL, tempL ;add low byte
adc ZH, null ;add with carry low byte
lpm tempL, Z+
lpm tempH, Z
cli ; clear global interrupt flag
sts StrobeFreqL, tempL ;atomic store
sts StrobeFreqH, tempH
in tempL, TIMSK
sbr tempL, (1<<OCIE1A) ;enable irq
out TIMSK, tempL
in tempL, TIFR
sbr tempL, (1<<OCF1A) ;enable irq
out TIFR, tempL
reti
esf_no_strobe:
in tempL, TIMSK
cbr tempL, (1<<OCIE1A) ;disable irq
out TIMSK, tempL
;cbr Flags, (1<<BLACK_OUT) ;enable pwm
;// black out on
ret
;****************************** manual chaser mode ***********************************
chase: ;called by indicator
; sbis PinE, PE1 ;DMX / hulye mod
; rjmp chs_a ;pattern mode
sbic UCSRB,RXEN
ret ;enable DMX reception
sbi UCSRB, RXEN
clr DMXstate
ret
; ***************************9ch 8bitpwm-Ausgabe ****************************************
pwm:
in SREGbuf, SREG
push tempL
sbrc Flags, BLACK_OUT ;blanked by strobe?
rjmp pwm_bo_exit
lds tempL, PWM_FIELD
cp tempL, PwmCnt
ror status
lds tempL, (PWM_FIELD+1)
cp tempL, PwmCnt
ror status
lds tempL, (PWM_FIELD+2)
cp tempL, PwmCnt
ror status
lds tempL, (PWM_FIELD+3)
cp tempL, PwmCnt
ror status
lds tempL, (PWM_FIELD+4)
cp tempL, PwmCnt
ror status
lds tempL, (PWM_FIELD+5)
cp tempL, PwmCnt
ror status
lds tempL, (PWM_FIELD+6)
cp tempL, PwmCnt
ror status
lds tempL, (PWM_FIELD+7)
cp tempL, PwmCnt
ror status
;9th bit
sbis PinD, PD4 ;invert option
rjmp pwm9_pos ; no invert
lds tempL, (PWM_FIELD+8)
sbi PortB, 0
cp tempL, PwmCnt
brlo pwm_exit
cbi PortB, 0
rjmp pwm_exit
pwm9_pos:
com status
lds tempL, (PWM_FIELD+8)
cbi PortB, 0
cp tempL, PwmCnt
brlo pwm_exit
sbi PortB, 0
rjmp pwm_exit
pwm_bo_exit:
sbis PinD, PD4 ;invert option
rjmp pwm_bo_pos ; no invert
ser status ;all ch off (inverted)
sbi PortB, 0
rjmp pwm_exit
pwm_bo_pos:
clr status ;all ch off
cbi PortB, 0
pwm_exit:
out PortA, status ;output
mov tempL, PwmCnt ;set next compare time
lsr tempL
lsr tempL
lsr tempL
ldi status, 250
sub status, tempL
out TCNT0, status
inc PwmCnt
tst PwmCnt
brne pwm_no_reload
sbr Flags, (1<<BLACK_OUT)
; lds tempL, (DMX_FIELD+1) ;refresh channels
; sts (PWM_FIELD+8), tempL
;ldi tempL, 255;
lds tempL, (DMX_FIELD+1)
sts PWM_FIELD, tempL
;ldi tempL,255;
lds tempL, (DMX_FIELD+2)
sts (PWM_FIELD+1), tempL
;ds tempL, (DMX_FIELD+1)
sts (PWM_FIELD+2), tempL
;lds tempL, (DMX_FIELD+1)
sts (PWM_FIELD+3), tempL
;lds tempL, (DMX_FIELD+1)
sts (PWM_FIELD+4), tempL
;lds tempL, (DMX_FIELD+1)
sts (PWM_FIELD+5), tempL
;lds tempL, (DMX_FIELD+1)
sts (PWM_FIELD+6), tempL
; lds tempL, (DMX_FIELD+9)
; !!!!!!!!!! STROBO out
ldi tempL,255
sts (PWM_FIELD+8), tempL
ldi PwmCnt, 1 ;reseed counter
sbr Flags, (1<<doIND) ;indicate in main
pwm_no_reload:
pop tempL
out SREG, SREGbuf
reti
; ***************************Strobo function ****************************************
strobe:
in SREGbuf, SREG
push tempL
push tempH
sbrs Flags, BLACK_OUT
rjmp str_blank
cbr Flags, (1<<BLACK_OUT) ;enable pwm
ldi tempL, low(FLASH_DURATION) ;load flash time
ldi tempH, high(FLASH_DURATION)
rjmp str_exit
str_blank:
sbr Flags, (1<<BLACK_OUT)
lds tempL, StrobeFreqL
lds tempH, StrobeFreqH
str_exit:
out OCR1AH, tempH
out OCR1AL, tempL
pop tempH
pop tempL
out SREG, SREGbuf
reti
.include "lib_dmx_in.asm"
nix: rjmp nix
// Strobo frequency table (damped logarithmic)
.org RATE
.dw 65532, 60407, 56368, 53017, 50170, 47708, 45546, 43626, 41904, 40345, 38925, 37623, 36423, 35311, 34277, 33311
.dw 32406, 31555, 30753, 29996, 29278, 28596, 27948, 27331, 26741, 26177, 25637, 25120, 24623, 24145, 23685, 23242
.dw 22814, 22402, 22003, 21617, 21244, 20882, 20531, 20191, 19861, 19540, 19228, 18924, 18629, 18341, 18061, 17788
.dw 17521, 17261, 17007, 16760, 16517, 16281, 16049, 15823, 15601, 15384, 15172, 14964, 14760, 14560, 14364, 14172
.dw 13983, 13798, 13617, 13438, 13263, 13091, 12922, 12756, 12593, 12432, 12274, 12119, 11966, 11815, 11667, 11522
.dw 11378, 11237, 11098, 10960, 10825, 10692, 10561, 10431, 10304, 10178, 10054, 9931, 9811, 9691, 9574, 9458
.dw 9343, 9230, 9119, 9008, 8899, 8792, 8686, 8581, 8477, 8375, 8273, 8173, 8074, 7976, 7880, 7784
.dw 7690, 7596, 7504, 7412, 7322, 7232, 7144, 7056, 6969, 6884, 6799, 6715, 6631, 6549, 6467, 6387
.dw 6307, 6227, 6149, 6071, 5994, 5918, 5843, 5768, 5694, 5620, 5548, 5475, 5404, 5333, 5263, 5193
.dw 5125, 5056, 4988, 4921, 4855, 4789, 4723, 4658, 4594, 4530, 4466, 4404, 4341, 4279, 4218, 4157
.dw 4097, 4037, 3978, 3919, 3860, 3802, 3744, 3687, 3631, 3574, 3518, 3463, 3408, 3353, 3299, 3245
.dw 3191, 3138, 3085, 3033, 2981, 2929, 2878, 2827, 2777, 2726, 2677, 2627, 2578, 2529, 2480, 2432
.dw 2384, 2337, 2289, 2242, 2196, 2149, 2103, 2057, 2012, 1967, 1922, 1877, 1833, 1789, 1745, 1701
.dw 1658, 1615, 1572, 1530, 1488, 1446, 1350, 1250, 1100, 1050, 1000, 950, 900, 850, 800, 750
.dw 700, 650, 600, 550, 500, 450, 400, 350, 300, 250, 200, 150
;.org PAT0 ;on
;.dw 0b0111111111
;.dw 0b1111111111
;.org PAT1 ;Lauflicht
;.dw 0b0000000001
;.dw 0b0000000010
;.dw 0b0000000100
;.dw 0b0000001000
;.dw 0b0000010000
;.dw 0b0000100000
;.dw 0b0001000000
;.dw 0b0010000000
;.dw 0b1100000000;
;.org PAT2 ;ping pong
;.dw 0b0000010000
;.dw 0b0000100000
;.dw 0b0000001000
;.dw 0b0001000000
;.dw 0b0000000100
;.dw 0b0010000000
;.dw 0b0000000010
;.dw 0b0100000000
;.dw 0b1000000001
;.org PAT3 ;ping pong
;.dw 0b0000011000
;.dw 0b0000100100
;.dw 0b0001000010
;.dw 0b1010000001
;.org PAT4 ;pfeil
;.dw 0b0000011000
;.dw 0b0000111100
;.dw 0b0001111110
;.dw 0b0011111111
;.dw 0b0011100111
;.dw 0b0011000011
;.dw 0b1010000001
;.org PAT5 ;RGB
;.dw 0b0001001001
;.dw 0b0011011011
;.dw 0b0010010010
;.dw 0b0110110110
;.dw 0b0100100100
;.dw 0b1101101101
;.org PAT6 ;RGB spread
;.dw 0b0100010001
;.dw 0b0101110011
;.dw 0b0001100010
;.dw 0b0011101110
;.dw 0b0010001100
;.dw 0b1110011101
;.org PAT7
;.dw 0b0001001001 ;RGB single change
;.dw 0b0001001011
;.dw 0b0001011011
;.dw 0b0011011011
;.dw 0b0011011010
;.dw 0b0011010010
;.dw 0b0010010010
;.dw 0b0010010110
;.dw 0b0010110110
;.dw 0b0110110110
;.dw 0b0110110100
;.dw 0b0110100100
;.dw 0b0100100100
;.dw 0b0100100101
;.dw 0b0100101101
;.dw 0b0101101101
;.dw 0b0101101001
;.dw 0b1101001001
.org CHS_SPD
.db 25, 10, 3, 2, 1, 2, 3, 5, 8, 12, 17, 22, 27, 35, 40, 48
Sziasztok! Azt szeretném kérdezni ki milyen írott irodalmat ajánl az assembly nyelv tanulására teljesen az alapoktól. Nekem jelenleg Rodek Lajos és Diós Gábor által írt kb 120 oldalas Assembly programozás témájú könyv áll rendelkezésre, azért kérdem mielőtt belemélyednék hogy van-e esetleg jobb ennél az írásnál.
Az általános részből csak maga az elv érthető meg, számábrázolás, processzor felépítése, működése, memória használat, címzés. Processzor témakörben szerintem Madarász Lászlónak is voltak jó jegyzetei a GANF-on. Igaz nagyon régen de az ő könyvei/jegyzetein keresztül értettem meg a processzorok lelki világát. Ha meg akarod tanulni akkor szinte biztos, hogy leglátványosabb egy mikrovezérlőt választani hozzá. PC-n is lehet, de ott szerintem már kevés látványos sikerrel kecsegtet eleinte, és gondolom az újabb processzorok már elég bonyolultak kezdőként.
|
|