ASSEMBLER. Mnemonik Dyrektywa Operandy (argumenty) - liczby i inne nazwy z prawej strony mnemoników, oddzielamy je przecinkiem, Instrukcja!
|
|
- Ignacy Kot
- 6 lat temu
- Przeglądów:
Transkrypt
1 ASSEMBLER strona 1 Definicje ASSEMBLER Mnemonik Dyrektywa Operandy (argumenty) - liczby i inne nazwy z prawej strony mnemoników, oddzielamy je przecinkiem, Instrukcja! " # Instrukcja maszynowa - binarny odpowiednik instrukcji Komentarz#$%;% Liczba - szesnastkowa: %H&$# %0 1202H, 0A010H #' zwyczajnie - ósemkowa: %Q lub O. - binarna: %B EOL = Carrier Return (13) + Line F()" * $ # : NAZWA w Asemblerze WORD 2 + DWORD 4 + QWORD 8 10 bajtów TBYTE 10 paragraf PARA 16 strona PAGE 256 segment SEGMENT (!"# ") Architektura mikroprocesora * ##,-cykl rozkazowy,. pojedynczej instrukcji. Na jeden cykl rozkazowy przypada kilka cykli maszynowych+ # kilku cykli zegarowych. Jeden cykl zegarowy wykonywany jest w jednym takcie zegara. Poszczególne cykle maszynowe +,/' BU"0 # #+ $# IU"0 +potok). EU "0 123,,# " AU"0 #!!, 1+$ #+,+ 4/ #5/# #, Adresy 67),8 # 7+,-segmentu (okienko #+# " #offset"$+# #,8+ # #,.#offsetu( ## (20 - bitowego) o jeden bajt, natomiast (! "#%(& ## segmentu o 16 bajtów (adres segmentowy - adres paragrafu). (! ) - adres nie jest jednoznaczny,9$ # #(:+!!(:+7 #++#, Zapis adresu - w postaci: <segment> : <offset> 0100H:0001H.
2 ASSEMBLER strona 2 Dekodowanie adresu (:7)# +;",<(:!!,* adres 20-bitowy. Bufor obrazu 8=>55$,8 # ')?@))A")?)))A",B$ 7'(8=>55 $7 ;",8 )CA,-#+,9(:)+, (!"3 $ # bajty (np. write() ) Data BIOS# )DDDD')))E,!!)(E", < $+8=>55 '25/04/97 Restart (zimny) - w BIOS zapisana pod adresem 0FFFF:0000 instrukcja skoku do procedury startowej. Rejestry Rejestry segmentowe+(:+, CS (code segment" #,8+# #$ #>= DS (data segment"#,3 + SS (stack segment" ES (extra segment) - zawiera adres dodatkowego segmentu danych Dodatkowe rejestry segmentowe (386 / 486) FS i GS - (nazwa od kolejnych liter alfabetu" + (!" "+, Rejestry ogólnego przeznaczenia +! przechowywanie offsetów: BX, BP, SP, SI, DI,8# #+,'SS : SP. (!"B!!++8F>F<F, ++'@ # +'AX, BX, CX, DX. Odpowiednio # '8X = AH + AL,= +MSB (most significant byte"lsb (least significant byte) Rejestry 32-bitowe (386 / 486) * +?-=-=5<5" G7+ nazwa 32-bitowego odpowiednika tworzona jest zgodnie ze schematem: AX EAX. (!"B EAX to AX) * H- rejestr IP!!+# #,->-/#5-$+ maszynowa. (! ) ## CS:IP (! ) 5- $ Rejestr znaczników (!"(:#$+( + +,* #$$ + OF (overflow flag) $# przeznaczenia DF (direction flag) - znacznik kierunku nie wskazuje niczego, (!",J<D#K+L +)# +,/( STD, 0 - CLD. (!"$K)L
3 ASSEMBLER strona 3 IF (interrupt enable flag" >-/ STI (na 1) oraz CLI)",9$$)#, TF (trap flag) SF (sign flag) - znacznik znaku ustawiany, gdy wynik operacji jest ujemny (1 na najstarszym bicie), zerowany - wynik dodatni. ZF (zero flag) - znacznik zera ustawiony, gdy wynikiem operacji jest 0 (! ), zerowany, gdy cokolwiek innego. AF (auxiliary carry flag) - znacznik przeniesienia pomocniczego # kodowanych binarnie - BCD - bajt traktowany jako para 4-bitowych nybli!)i, PF (parity flag" $ + jest parzysta, zerowany - gdy nieparzysta. CF (carry flag) - znacznik przeniesienia,d#!stc (CF = 1), CLC (CF = 0), CMC (CF = -CF) AC (alignment check";@:"#+ # ;,* ;@:$#G7# # + + +, Kopiowanie rejestru flag 32M nale y u yæ stosu - naspierw PUSHF a potem POP Rodzaje danych i adresacje Instrukcje wymagaj# H+ H+ ) i adresu! operand przeznaczenia). Operand przeznaczenia stoi za zwyczaj,mov DX, AX <F 8FH+, Rodzaje danych 5G + ' Dane natychmiastowe#adresowaniu natychmiastowemu - dana zawarta jest w segmencie kodu zaraz po ", (! "3 +@H+", Dane natychmiastowe to #,MOV AX, 1 < +!! # $(:@ ", Dane rejestrowe >-/,<# #adresowaniu rejestrowemu (ukrytemu). Sprowadza # ' MOV AX, BX - w BX jest dana rejestrowa, która zostanie zapisana jako dana rejestrowa w AX. (!"H+@+(:, < ##$(3? #,!"* #$ + #,<,B +$ #,B# # [ ], którymi wskazujemy, w jakich + #, = $' (!"* przedrostka zmiany segmentu. [ <rejestr_offsetu> ] [BX] - # dla BX i offsetu zawartego w BX [ <rejestr_bazowy> + <rejestr_indeksu> ] [BX + DI] - # # segmentu DS!!+$?F<5 (!" +! ## " [ <rejestr_bazowy> + <dana_natychmiastowa> ] [SI + 1] - $ # - <N O #$"#!!", (!"# + " # ##+#"
4 ASSEMBLER strona 4 [ <rejestr_bazowy> + <rejestr_indeksu> + <dana_natychmiastowa> ] [BX + DI + 7] - adresowanie indeksowe # # #<=!!+!!++$, (!"# + + <rejestr_bazowy> wskazuje adres tablicy, <rejestr_indeksu> - element tablicy (rekord), <dana_natychmiastowa> - konkretne pole w danym # $+ " Adresowanie wielowymiarowe - dla tablic o wielu wymiarach <NO Pdana_natychmiastowa> - pole w rekordzie, <rejestr_indeksu> - konkretny element +$"K)L"' nr_wiersza * nr_kolumny <$# +,*!! $,* $+!!,B#$$ #' DS dla offsetów BX, SI, DI SS dla offsetu SP (!" SP dla BP 9$ $ przedrostka zmiany segmentu w postaci <rejestr_segmentu> :!!,ES:[BX], CS:[SI], ES:[BX + DI] itd. Tworzenie programu exe 6 G',3 #+, =!# =4J3 4BQ' PO=4J34BQR SR SR%nazwa_klasy ] np. MojeDane SEGMENT. gdzie: PO R S$ # $' BYTE - od pierwszego wolnego bajtu WORD PARA - od pierwszego wolnego adresu podzielnego przez 16 PAGE - od pierwszego wolnego adresu podzielnego przez 256 (!"$ $ #-818 R S! + $' PUBLIC# ++# #+ + COMMON# + $T $# + MEMORY ( AT <NO - segment zostanie umieszczony pod adresem segmentowym znanym w czasie $ PNO STACK =Q8>6 +$ równej ich sumie (!"9$ $ #PRIVATE#, [ N&S +$# #+ 6!$ENDS +PO, 6! +" END poza +,8# # 4B<, 8 +,7)U(E) w kodzie programu,2 # $ #! 4V/",3+ NOT <op> po obliczeniu zostanie $,B2QPop>.!"#$%&#$%'#$ B "'.486 (MASM/TASM) lub P486N (TASM). $-/=AD!-2-D$#@)@:$,
5 ASSEMBLER strona 5 7@:+ (7(; zastosowanie) rejestr AC zawsze równy 0 $# mamy 386, w przeciwnym razie 486 Segment stosu Adres segmentu stosu przechowuje SS,9 <2=,1 (6? +! <2=?52=, =#==') #, B SP wskazuje na koniec stosu (SS + rozmiar stosu). 3 #===='=-# =='=- Szczyt stosu",3 #==')=='=-# #, SS + rozmiar SS:0 ( - zmniejsza#=- =='=-,2# PUSH$7@:" natychmiastowej) lub PUSHF!", PUSHF PUSH AX PUSH [BX] PUSH 21H (!"2 (+@,? # '=='=-=='=-( (!" Zdejmowanie ze stosu. # # $=-,1# POP (ogólne) lub POPF (dla flag). (!"2$(@", POPF POP AX POP [BX] Inicjalizacja stosu <!# DUP (patrz: Segment danych) np. DB 64 DUP( STACK!!! ); (!" #$!,%&"# H <4?/J,Q# Segment danych Typ danych - w asemblerze oznacza rozmiar danych. SS:SP Definiowanie zmiennych <!$#"! : DB (define byte) - definiuj bajt DW (define word)! DD (define double)! + DQ! + DT!()+E+" np. <*XKL#7+, (! ) W przypadku gdy zmienna L(: #'MOV AL, zm, $ #L(:+,B+specyfikatora zmiany typu.. #$,zmienna DW 0FFFFH.
6 ASSEMBLER strona 6 )*+,.+string" #,3 # +,- ##DB (! ) +#+,>+ # lub $ +8=>55,Q #<?(#,Q <?, Y+! +,3 + + %, np. lancuch DB Ala, ma kota, $ Eol DB 0DH, OAH, $ <$ $ $ "#! ' -. EQU $ - <*+,. 'PO#$ PN O$ - zwraca +,* PN O stringu, $ - na pierwszy bajt zaraz po #PO#$+stringu np. Napis DB Ala ma kota, ale kot jest zielony Dl EQU $ - Napis )/(, 9$ ## ze stringówdup,.!# ' <nazwa_zmiennej> DB <ile> DUP( <N O" <? PO + <N O string, liczba lub? # #, np. Nazwa DB 10 DUP( Luke ) ; Nazwa zajmie 40B Temp DB 10 DUP(?) ; Temp zajmie 10B, nie inicjalizowana (! ) - #'Usizeof ( <N O" Zmienne anonimowe Q#, DB 100 DUP(?),<# # #, (! ) - offset zmiennej w DST$++#!$ Dyrektywa LABEL <$$ #,3 # #' <nazwa_zmiennej> LABEL <N #O gdzie: <N #O,WORD, DWORD B## + #+! jednej z dyrektyw definicji zmiennych (DB, DW). Z <NO# nie trzeba #specyfikatora zmiany typu ", Tablice <!# DB + # stringu lub </-"+ $ </- T$ +, Tab DB ()+()+(, Tab DB 100 DUP( 12 ) + ())+7, 3,DW+ # ",-' Tab DW 0B800H DW 0A000H DW 0000H... (!"-# +#, wówczas,9$ n-+$n. (!"2 #$elem. tablicy (n"!$k7l #i-tego #i*n+ =AY
7 ASSEMBLER strona 7 (!"-#, wówczas rejestr $"#, (!"+# ' <nazwa_tablicy>[ <indeks> ] np. tab[2] PO+,1$"+ definiowania tablicy (np. DB, DW ), ewentualnie od zadeklarowanego dla <NO # dyrektywy LABEL. Szybkie odwzorowania - tworzenie +i-tym #$i. ( f ( i )",Q# ",<#f( i ), '$i T)+C$i = (+7, 0 <! # EQU + +# +,!,", Stala EQU 2-7*4 Imie EQU Cindy Data EQU 0FFFF:0005 (! ) EQU dziala jak #define, na etapie $, Zmiana typu * #$ +# # (",B4J5B><4>B2Q $ #np. B4J ",2# specyfikatorów zmiany typu - BYTE PTR, WORD PTR itp. np. NEG BYTE PTR [BX] (!"$, (: (: specyfikator zmiany BYTE PTR i zostanie tam zapisana starsza +, MOV AL, BYTE PTR Zmienna Segment kodu Definiowanie Etykiet Etykieta$ #T w kodzie, adres segmentu itp. ). *!+, /T ##>=,4#!## ' <etykieta> : gdzie <etykieta> - dowolny string np. Tutaj : (!"2#,MOV SI, Tutaj. 12!( #,=,B# END # tej etykiety. ((+,3 <+ +8==/3 4,/# # 'ASSUME CS:Kod, DS:Dane, SS:Stos, gdzie Kod, Dane i Stos to etykiety - nazwy +,2#Dane SEGMENT a Dane ENDS #!#Dane SEGMENT a Dane ENDS# # #!,B #$. (!"B <=,B $ #,1## +' mov AX, Dane mov DS, AX
8 ASSEMBLER strona 8 Procedury Definiowanie - PROC +Tnazwa procedury,b#!# # ENDP +, Moja PROC mov AX, Dane mov DS, AX dec CX. ret Moja ENDP * CALL <nazwa_procedury> np. call Moja. >8YY!! = 2B = 16b) i skacze do wskazanego miejsca. (! ) - -#RET + >8YY14Q, (!" #$, 4* - "$,5 #KL #!,8 #,B +#$#!# $, Moja PROC ; zabezpieczenie wart. rejestrow push AX pushf XOR AX, AX ;modyfikowany rejestr AX CMP AX, zmienna ;modyfikowane flagi ; przywrocenie wartosci z momentu wywolania popf pop AX ret Moje ENDP Przekazywanie parametrów do procedur przez odpowiednie rejestry #++,"! procedura zwróci wynik przez stos $$$, * $,!" # zawiera adres powrotu z procedury $ "# =='R=-7S ( * # + # #K L,= =-,B $ #,D#?-,* + +$ $=-# #+ #?-;?-:, -# + # ' Moja PROC ;zabezpieczenie rejestrów push BP push AX push BX! "#$%&''()*+#$%, *+#$%-)$+ ; pod SP+8 - adres powrotu z procedury dla RET mov BP, SP mov BX, [BP+10] mov AX, [BP+12] pop BX pop AX pop BP ;do BX trafia drugi. ;do AX pierwszy
9 ASSEMBLER strona 9 ret Moja ENDP - ' push arg1 push arg2 call Moja pop arg2 pop arg2 '/0 / 1' (!"* $++$ -2-$#,* # ADD SP, N gdzie N$+, Zmienne lokalne 9$ $,*# $N - bajtów miejsca (SUB SP, N ). W tym momencie mamy do dyspozycji N+,< #?-+ +=-, (!"9$ #,+ #?- #N+ +# $?-#N np. mov BP, SP )$%," sub SP, 4 mov BP, SP ;SP wskazuje na ostatn222 ; pod BP pierwszy. (!"* 8<<=-N. (!"-, sub SP, 4; mov BP, SP ;OPIS ZMIENNYCH LOKALNYCH: )$"1 )$%&"1 ''& +( *!+ +H $ tej procedury. <#( +! $ ",<#,!$$ +# -12>#! $ # +, DodajDomysl PROC mov AX, 2 mov BX, 2 Dodaj: add AX, BX ret DodajDomysl ENDP * $#'CALL < N$O. (! ) < ' nazwa procedury co dana procedura robi $ +$ wej. +! $ $
10 ASSEMBLER strona 10 Makroinstrukcje 3 KLpreprocesingu asemblacji. 2#, Definiowanie 3!#!"!# ## ' <nazwa_makra> MACRO <parametr1>, <parametr2>, P Oparametry +preprocesingu) argumenty. Parametr makra" $3 8>12! Argument makra$, 2 + +"# P O <!#ENDM. (! ) - etykiety lokalne! ",* 7 3 8>12" ' LOCAL <etykieta1>, <etykieta2>, 4#!, -$ +" Gotoxy MACRO WspX, WspY LOCAL Petla, Koniec mov DH, WspX mov DL, WspY Petla: dec CX Koniec:mov AX,[BX] ENDM (!"14Q " (! ) - przed ENDM nie stoi nazwa makra (!"$#+ parametrów (##+ parametrze $ # ) + +$ $ # #). "# ' <nazwa_makra> <argument1>, <argument2>, np. Gotoxy 10, 20 (!" #+ +",.arg., (!">8YY Przekazywanie dalekiego adresu +!!$, #!"#LES wg. schematu: Clrscr MACRO AdresBuf, Czymczysc LES DI, DWORD PTR AdresBuf * ' Clrscr 0B800H:0000H, Wzorzec programu exe ; SEGMENT STOSU - START Stos SEGMENT STACK DB 64 DUP ( STACK!!! ) Stos ENDS ; SEGMENT STOSU - KONIEC ; SEGMENT DANYCH - START Dane SEGMENT Zmienna DB Dane ENDS ; SEGMENT DANYCH - KONIEC ; SEGMENT KODU - START Kod SEGMENT assume CS:Kod, DS:Dane Main PROC Start: ( mov AX, Dane ; )0 3#45
11 ASSEMBLER strona 11 mov DS, AX mov AH, 4CH mov AL, 0 int 21H Main ENDP '/ 67#82' '39979:3;3: Kod ENDS ; SEGMENT KODU - KONIEC END Start Program typu com zbiory.+,e(7+,exe) programy.# :;6? dla programów.com stos jest generowany automatycznie, miejsce na niego przydzielane jest w ramach segmentu $$ # program.! NEAR) " 7E:?PSP + #<2=" ' ORG 100H Wzorzec programu Kod SEGMENT assume CS:Kod, DS:Kod, SS:Kod ORG 100H Start: jmp Main 0'( 4 Zmienna DB Main PROC NEAR ret Main ENDP Kod ENDS END Start Tworzenie programu wynikowego H+ Warning: No STACK segment! ) EXE2BIN,exe na.com 5++ -,- #,- # ' nie posiada punktu startowego (nic po END) T+ " +" #" $$procedury $" # segmentu kodu: PUBLIC <etykieta1>, <etykieta2>, PO# $ * #$!$ -12>4B<- $ # dane ' PUBLIC <zmienna1>, <zmienna2>, #$! + zmienne (np. <?<* </-" )
12 ASSEMBLER strona 12 (!"$ #$ =4J3 4BQ #PUBLIC. (!" te same nazwy+ #$, (!" +ASSUME. -' """""""""""""""""" """""""""""""""""" Dane Dane Kod SEGMENT PUBLIC PUBLIC Eol, Ekran Eol DB 0DH, 0AH, $ 2em Ekran DW 184FH ; y = 18H = 24D, x = 4FH = 79D ENDS SEGMENT PUBLIC PUBLIC DodajDomysl, Dodaj ASSUME CS:Kod, DS:Dane DodajDomysl PROC mov AX, 2 mov BX, 2 Dodaj: add AX, BX ret DodajDomysl ENDP Kod ENDS END (+,+ $ $ # #' EXTERN <nazwa_procedury> : PROC np. EXTERN ClrScr: PROC <#K!L#$,8 ###, (!"<# (!"9$ +$, $ danych! ' EXTERN <nazwa_zmiennej> : <specyfikator_typu>, gdzie specyfikator typu$$ + ",3 # $' BYTE, WORD, DWORD#! <?<*<<, (!"J# KstringL DUP( ) jest ona definiowana przy pomocy dyrektywy DB BYTE - ' EXTERN Eol:BYTE, Ekran:WORD (!"- ##specyfikatora typu -12> (! ) Deklaracja ta jest w segmencie danych 6!+ Z.obj +# # + +, Biblioteki makr?#! + segmentu kodu). Plik taki ma rozszerzenie.mac,* (KL +" # INCLUDE +#, Przerwania / /## #. W odpowiedniej chwili oprócz!0kod typu,3 +7E:+ +,B 0 ;,<# + +,2 +
13 ASSEMBLER strona 13, )",- programów Przerwania programowe * K)L#7E: ;77 #"++ " (6?183,6 adres - wektor przerwania. Tabela ta zwana jest +,-#?52=<2= $,* <2=Tnumer przerwania) # " #+, * # INT <numer_przerwania> np. INT 21H. Przed skokiem do odpowiedniej procedury (przerwania) INT wykonuje: $+("!#5D $ "QD >=!!5- $ 8 + IRET+ przeciwne do INT. (! ) istnieje warunkowa wersja INT INTO (overflow) Przerwania zarezerwowane -)(DA 5&,3,#!' )00$# ) (0 0# debugowanie krok po kroku 2 0 G0 0 # ;00#, -7)AGDA <2=, 7) 0 7( 0 <2= 22h adres powrotu po wykonaniu programu 7G 0$Ctrl-Break 7; 0 # 25h odczyt sektorów z dysku 26h zapis sektorów na dysk 7C 0 # 12,++3* -,<!#' <nazwa>proc FAR IRET <nazwa> ENDP * #5D$!, 5BQ,!,++3* 1. # $ 2. # " $##! 21H DOS: ustawienie wektora przerwania funkcja AH = 25H, AL - numer przerwania, DS:DX odczyt wektora przerwania funkcja AH = 35H, AL - numer przerwania, ES:BX! - ' ; w segmencie danych istnieje linia: wektor DW 0 2(MojePrzerw ; w segmencie danych istnieje linia: adres DD MojePrzerw / '
14 ASSEMBLER strona 14 mov AH, 35H mov AL. 0 int 21H (' mov wektor[0], BX mov AX, ES mov wektor[1], AX ;zapisanie nowego adresu *+#4*0 '.6 mov AH, 25H mov AL. 0 int 21H ;przywrócenie pierwotnych wart. lds DX, DWORT PTR wektor mov AH, 25H mov AL. 0 int 21H <2=# E) # 21H,* + $AH oraz +$, (!"0D!>D,J>DT)0 # $>DT( +!8F, (!"0 +#%)&, AH Operacja 1 Wyniki 2 2 *$Ctrl-Break) DL = znak kursor za znakiem 5 Wydruk znaku DL = znak 6 *$Ctrl-Break) DL = znak kursor za znakiem 9 * $ %[& <='<FT (!"%[&, 40 patrz!" BX = 1, 2 1 ># AL = znak $Ctrl-Break) 6 Odczyt znaku z klawiatury (bez kontroli Ctrl-Break) DL = 0FFH 8YT$ = 0, gdy brak znaku 7 >$ AL = znak (bez kontroli Ctrl-Break) 8 >$ AL = znak A Ctrl-Break) *! "# $ $ %&'%! DS:DX = adres bufora, (! ) pierwszy bajt bufora $ bajtu, 7, Drugi bajt bufora $$ przeczytanych znaków B Odczyt stanu klawiatury AL = FFH - brak znaku, T)0# C *!! 8YT! * $ (1, 6, 7, 8, A)! Czas i data 2A Pobranie daty CX = rok <AT <YT 2B Ustawienie daty CX = rok ( ) <AT <YT AL = 0 data poprawna TDD0# 2C Pobranie czasu CH = godzina CL = minuty DH = sekundy DL = setne sekundy
15 ASSEMBLER strona 15 2D Ustawienie czasu CH = godzina CL = minuty DH = sekundy DL = setne sekundy Komunikacja asynchroniczna 3 $ AL = znak 4 $ DL = znak 2 + D Zapis zmienionych buforów dyskowych z powrotem # E *$ # DL = numer dysku AL = 0 czas poprawny TDD0# 8YT$+ 7 #" (0 = A, 1 = B, 2 = C ) 19 -$ AL = nr dysku (j. w.) 2E.H! DL=0 8YT)0 T(0 30 Pobranie numeru wersji MS-DOS AL = numer wersji AH = numer zmiany BX, CX = / DS:DX = adres wektora AL = numer przerwania 35 - AL = numer przerwania ES:BX = adres wektora 1! Utworzenie katalogu <='<FT 3A /# DS:DX = j. w. 3B Zmiana katalogu roboczego DS:DX = adres katalogu do + $ 47-0 <=T # )T$ 1 = A, 2 = B ) DS:DX = adres 64- bajtowego bufora <='=5T docelowego 36 Pobranie wolnego obszaru na dysku <YT #,," 8FT$+ klaster, = 0FFFFH w #?FT$ klastrów >FT$+ sektor <FT$ klastrów 3C Utworzenie pliku <='<FT CX = atrybuty pliku (patrz " 3D Otwarcie pliku <='<FT AL =0 otwarcie do odczytu =1 zapisu =2 odczyt & zapis 3E.# BX = uchwyt pliku " 3F 2 " BX = uchwyt pliku " >FT$ + DS:DX = adres bufora AH = uchwyt do pliku " AH = uchwyt do pliku " 8FT$ bajtów = 0 odczyt poza plik 40. " BX = uchwyt pliku 8FT$
16 ASSEMBLER strona 16 " >FT$+ <='<FTH+, bajtów 41 /# <='<FT 43 Nadawanie atrybutów plikowi AL = 1 <='<FT CX = atrybuty (patrz pod " 54 Pobranie znacznika sprawdzania AL = 0 brak zapisu sprawdzania = 1 zapis ze sprawdzaniem 56 Zmiana nazwy pliku <='<FT 4='<5T. 31. # AL = kod powrotu <FT # paragrafach 4B. AL = 0 <='<FT nazwy programu ES:BX = adres bloku parametrów 4C. AL = kod powrotu dla ErrorLevel 4D -# AL = kod powrotu dla 62 Pobranie adresu bloku PSP BX = adres segmentu PSP programu. # 48. #183"?FT$ paragrafów 49. # ES = adres segmentu ze # 4A.$ # ES = adres segmentu obszaru # -# AX = adres segmentu z # 59 -# BX = 0 AX = rozszerz. kod?at# BL = zalecana reakcja >AT Atrybuty pliku$+,. +' 0 read only, 1 70G0;0 E0 backup) Uchwyt pliku0! 5W2,5# +' )0$<2= " (0$$) 70$#+niezmienialne) G0 " 4 drukarka = ; <2=@ +,3 #, (210%40 (!"># " +?52= <2="# $AH
17 ASSEMBLER strona 17 VIDEO (BIOS) - przerwanie 10H. gotoxy AH = 02H, do BH - strona karty graficznej (zwykle = 0), DL +#K\LDH +#K& +#! ) liczone od 0 scrolling okna/ekranu (czyszczenie okna/ekranu) AH = 06H, CX +#+DX - +# +#) +KL K\L AL$scrollingu, (! ) AL = 0 - czyszczenie ekranu. odczyt typu karty AH = 1AH, AL = 0 (!8Y!" Konfiguracja (BIOS) - przerwanie 11H, zapisuje do AX+ + +' 0 - istnieje FDD 1 - istnieje koprocesor 2 - zainstalowana mysz G$183 4,5 - tryb video :C$D<< I()(($ istnieje GamePort 13 - zainstalowany modem (wew.) 14,15 - il. druk. Programy rezydentne Program rezydentny +#!, - # #, * +$ #,* +$ $ # Q=1,- +! +,5 + "+,*, # #, -#!' KEEP - funkcja 31H przerwania 21H,- ' AH - 31H AL -$,ERRORLEVEL) <F # (:! D $, &<2=" #,Gdy program otrzymuje kontrolê, funkcja EXEC (4bH) alokuje blok pamiêci zaczynajacy siê od PSP i zawieraj¹cy ca³¹ dostêpn¹ pamiêæ. Pamiêæ ta przydzielana jest procesowi. Wykorzystuj¹c funkcjê 31H <2= # <F$<FU(:?+",D + #+ #!;@A, TSR - przerwanie 27H,B' <F+ ##$!!#<= #(, D <2= # # -=-$<F,-##, (!"-7CA <2= $+ 77A7;A! + Critical Error lub Ctrl - Break, (!"-7CA# +PT:;6?!? (:<F" Dyrektywy zaawansowane EVEN0 H + #, <nazwa> GROUP <nazwa_segmentu1> [,<nazwa_segmentu2>, ]0 PO :;, 5D]]PO,R4Y=4S,4B<5D0 #$ $PO,8 4Y=4 $ IF: 5D40) 5D0) 5D<4D0! 5DB<4D! Operatory 2 +,
18 ASSEMBLER strona 18 arytmetyczne +, -, *, /, MOD0P$(OP OP$7O SHL, SHR P$(OP OPO logiczne AND, OR, XOR0P$(OP OP$7O NOT0B2QP$O relacji #P(OP OP7O #' EQ a1 = a2, NE a1!= a2, LT a1 < a2, GT a1 > a2, LE a1 <= a2, GE a1 >= a2 (+! $$H0$H[ SEG 0$ OFFSET0$!! LENGTH 0 0$!"! </- TYPE0 Q^-4'(0?^Q470* 21<;0<* 21<,<'( NEAR, -2 FAR. SIZE zwraca iloczyn LENGTH i TYPE atrybutu PTR0# 'P O-Q1POP O?^Q4* 21<,B481D81", DS:, ES:, SS:, CS: - atrybuty zmiany segmentu SHORT0'93-=A21QPO!PO(7C+ instrukcji aktualnej. THIS0H HIGH zwraca starszy bajt 16-bitowej liczby LOW 0W Koprocesor _"08 #,7@C, Budowa + ((,=!!,=$ + $$,1+ #stosu koprocesora. Stos ten ", Typy danych Y '(0(E0+:;0,6,<# # #$!"' Word Integer - 16b, , 32767, 5 cyfr Short Integer - 32b, -2 * 10^9, 2 * 10^9, 9 cyfr Long Integer - 64b, -2 * 10^18, 9 * 10^18, 18 cyfr Short Real - 32b, 10^-37, 10^38, 7 cyfr Long Real - 64b, 10^-307, 10^308, 16 cyfr Temporary Real - 80b, 10^-4932, 10^4932, 19 cyfr Packed <@)(@!# (@! Instrukcje koprocesora Instrukcja, D?Y<PH+O FBSTP <przeznaczenie> D5Y<PH+O FIST <przeznaczenie> FISTP <przeznaczenie> Opis + # #P O # #P O_0" #P O
19 ASSEMBLER strona 19 DY<PH+O FST <przeznaczenie> FSTP <przeznaczenie> FXCH <przeznaczenie> Arytmetyczne D8<<RP OPH+OS D8<<-P OPH+O D58<<H+ D=/?RP OPH+OS D=/?-P OPH+O D5=/?PH+O D=/?1RP OPH+OS D=/?1-P OPH+O D5=/?1PH+O D3/YRP OPH+OS D3/Y-P OPH+O D53/YPH+O D<5MRP OPH+OS D<5M-P OPH+O D5<5MPH+O D<5M1RP OPH+OS D<5M1-P OPH+O D5<5M1PH+O FSQRT FSCALE FPREM FRNDINT XTRACT FABS FCHS Porównania D>23 RPH+OS D>23-RPH+OS FCOMPP D5>23 PH+O D5>23-PH+O FTST FXAM / F2XM1 FYL2X FYL2XP1 FPTAN # # (!"# 7 #H+ H+" odwróconym# H+H+ przeznaczenie) dodaje rzeczywiste dodaje rzeczywiste i zdejmuje ze stosu odejmuje rzeczywiste odejmuje rzeczywiste i zdejmuje ze stosu odejmuje rzeczywiste (odwrócona) odejmuje rzeczywiste i zdejmuje ze stosu (odwrócona) (odwrócona) dzieli rzeczywiste dzieli rzeczywiste i zdejmuje ze stosu dzieli rzeczywiste (odwrócona) dzieli rzeczywiste i zdejmuje ze stosu (odwrócona) (odwrócona) pierwiastek kwadratowy ##7 #$ wydzielenie cechy i mantysy * $# Zmiana znaku + # porównuje rzeczywiste porównuje rzeczywiste i zdejmuje ze stosu porównuje rzeczywiste i 2 razy zdejmuje ze stosu + + sprawdza, czy szczyt stosu jest 0 bada szczyt stosu!, oblicza 2^X - 1 oblicza Y * log_2 (X) oblicza Y * log_2 (X+ 1) #$
20 ASSEMBLER strona 20 FPATAN 0, FLDZ FLD1 FLDPI FLDL2T FLDL2E FLDLG2 FLDLN2 0+! DY<>* PH+O FSTCW/ FNSTCW <przeznaczenie> FSTSW / FNSTSW <przeznaczenie> FSTSW/ FNSTSW AX FSAVE/ FNSAVE <przeznaczenie> D1=Q21PH+O DY<4BMPH+O FSETPM FSTENV / FNSTENV <przeznaczenie> FWAIT FINIT / FNINIT FENI / FNENI FDISI / FNDISI DCLEX / FNCLEX FINCSTP FDECSTP FFREE FNOP #$arcus tangens $Temporary Real) ),) (,) -5 N7()" N7" N()7" log_e (2) #!$, +, # # #8F zachowaj stan odtwórz stan $ ustaw wirtualny tryb pracy #$ wait (zatrzymuje proc., zabezp. przed korzyst. z tych samych obszarów RAM) inicjuje (resetuje) koprocesor zezwala na przerwania blokuje reakcje przerwania #H H zwalnia (zeruje) rejestry nic nie rób Niebieskie karty 5 ##,. #! znaczników!,8+#! ## symbole operandów: r8@ + r16-16-bitowy rejestr ogólnego przeznaczenia sr - jeden z rejestrów segmentowych m8+ # " m16 # i8 - bajt natychmiastowy i16 d8-8-bitowe przemieszczenie$# +,-,9# aktualnej instrukcji. d16(: + Instrukcje Rozkazy transmisji danych (! "5!+, MOV <op1>, <op2> $ 7" (,2 ' (!" $, # (!",
21 ASSEMBLER strona 21 (!" + (!" + $(MOV 16bitów 8bitów) (!"! + * 7 ( $, LEA <op1>, <op2> przenosi efektywny adres operandu 2 do operandu 1 np. LEA DX, Zmienna LDS <op1>, <op2> przenosi daleki adres <op2> do pary rejestrów DS:<op1> LES <op1>, <op2> przenosi daleki adres <op2> do pary rejestrów ES:<op1> LAHF przenosi do AH+ SAHF +$8A IN <op1>, <op2> P (O$ RP 7OS (!" '8Y$@8F<F OUT <op1>, <op2> RP (OS$P 7O (!" '$@8Y<F8F XCHG <op1>, <op2> #$, XLAT zapisuje w AL # <='R?F8YSê, gdy pod DS:BX jest tablica bajtów, a do AL ` PUSHA (286) - $'8F>F<F?F=-?-=5<5, (!"* $SP$ -/=A8$ # -2- #=- #=-# +" +8F>F<F?F # POPA 7@:"$$-/=A8 =- PUSHAD i POPAD (386) - jak PUSHA i POPA, tylko dla rejestrów 32-bitowych IN <op1>, <op2> - przenosi dane z portu do akumulatora. <op1> = AL przenoszony jest bajt, = AX przenoszone jest P 7O 0 $<F, OUT <op1>, <op2> P (O 0 $ <FP 7O w AL lub AX. Operacje arytmetyczne (!"2!'2D=D.D8D-D>D INC <op> #($! ) nie zmienia CF. DEC <op> ($! ) nie zmienia CF NEG <op> $ 5-5 ADD <op1> <op2> dodaje <op2> do <op1>, dla bez i ze znakiem SUB <op1> <op2> odejmuje <op2> od <op1>, dla bez i ze znakiem MUL <op> 8F$#:EEGE <F8F bity w AX). < O@+#AL@",P OP(:O P(:O+AX", (! ) MUL modyfikuje AX i DX (! ) < OB54 IMUL <op> 3/Y!8F$#G7C:C DIV <op> ##8F Pop>, wynik trafia do AL, a do AH trafia modulo. 3 (:#<F8F!8F<F IDIV <op> jak DIV, tylko dla liczb ze znakiem ADC <op1> <op2> P 7OP (O>D SBB <op1> <op2> P 7OP (O >D CBW $AL ustawiony 8A CWD $AX ustawiony <F AAA #?><AX). W BCD w ramach # ;;"!)I,888 # '$; +8Y$#OI dodaje 6 do AL., zeruje 4 starsze >D8D $8A#,9$8Y,PTI>D8D zerowane. AAD?><8F AAM?><8F AAS?><8F (!".8=>55!!$ 8=>55 #?><+$, DAA?>< 7!### ;!# DAS korygowanie wyniku odejmowania dla liczb traktowanych jako upakowane BCD
22 ASSEMBLER strona 22 Operacje logiczne (!"B $seg. do innego (!"< AND <op1>, <op2> dokonuje logicznego and + P (OP 7O wynik umieszcza w <op1>. < O@(:, OR <op1>, <op2> jak w AND, tylko dla logicznego or. XOR <op1>, <op2> jak w AND, tylko dla logicznego xor. NOT <op> neguje wszystkie bity <op>, wynik w <op> (! ) nie modyfikuje adnych znaczników (nawet ZF) Wydzielanie bitu +("8B<# " Ustawianie bitu##+,k(l# 21#W + Zerowanie bitu#+k(lb2q"+ 21#"B2Q" Szybkie zerowanie danejf21,xor AX, AX zeruje AX. Instrukcje przesuwania SHL <op>, <licznik> przesuwa bity <op> w lewo, uzupe³nia 0-wym bitem, <op> - pamiêæ lub rejestr, <licznik> - liczba 1 lub rejestr CL (nie CX), w CL jest iloœæ, o jaki¹ nale y przesun¹æ bity, ewentualnie przesuniêcie o 1. (! ) wysuwane bity trafiaj¹ do CF (a z niego donik¹d) (! ) przesuniêcie 16-krotne = zerowanie s³owa 7@:"PO$,SHL AX, 7 7@:"$ #POG(bo np. 32 daje to samo co 0) SAL <op>, <licznik> =AY SHR <op>, <licznik> =AY 7@:", SAR <op>, <licznik> jak SHR, ale uzupe³nia najstarszym bitem (bitem znaku) ROL <op>, <licznik> rotuje bity <op> w lewo, wysuniêty bit trafia na koniec oraz do CF 7@:" ROR <op>, <licznik> jak ROL, tylko w prawo, wysuniêty bit trafia na pocz¹tek oraz do CF 7@:" RCL <op>, <licznik> rotuje bity <op> w lewo, wysuniêty bit trafia do CF a bit z CF na koniec7@:" RCR <op>, <licznik> jak ROL, tylko w prawo, wysuniêty bit trafia do CF, a bit z CF na pocz¹tek 7@:" Szybciej jest zapisaæ kilka razy SH? <op>, 1 >Y #;" = ##+,3/YCC" (!" a #KL!$ n " $7 #ii * n (co szybko =AY" +( ((+/ JMP <etykieta> skok do <etykieta> (<etykieta> - wczeœniej zdefiniowana etykieta$ segment:offset), skok jest bezwarunkowy. (!" G7" J? <etykieta> PO$%]&+" (!"5bliskie R(7@(7CS (!" # instrukcji (!"< (!",#T+) (!"5signed i unsigned. Liczby ze znakiem - najstarszy bit = 1, gdy liczba ujemna Relacje#' W#less / greater) liczby ze znakiem (signed) W above / below) liczby bez znaku Relacje po wykonaniu CMP: Relacja dla: bez znaku ( (co testuje) dla: ze znakiem ( (co testuje)
23 ASSEMBLER strona 23 = JE ZF = 1 JE ZF = 1 < > JNE ZF = 0 JNE ZF = 0 > JA CF = 0 i ZF = 0 JG ZF = 0 lub SF = OF JNBE JNLE < JB CF = 1 JL SF < > OF JNAE JNGE >= JAE CF = 0 JGE SF = OF JNB JNL <= JBE JNA CF = 1 lub ZF = 1 JLE JNG ZF = 1 i SF < > OF 5!' mnemonik co testuje JNS skok, gdy brak znaku SF = 0 JS skok, gdy jest znak SF = 1 JNO OF = 0 JO OF = 1 JP/JPE $ PF = 1 JNP/JPO $ PF = 0 JCXZ <etykieta> PO>FT) " (! ) tylko skoki bliskie [ ] (! ) nie istnieje instrukcja przeciwna JCXNZ + +>FPO), (!" #9>F.Y22-,B54>FPO)# $ #+ ##>F), CMP <op1>, <op2> + $# PPTTOTO",<'wynik = <op1> - <op2>, zapomina wynik a tylko ustawia znaczniki. (!",9]$# >3-9]9]" $!, TEST <op>, <maska>+p O 8B<KL ustawia znaczniki. (! ) TEST modyfikuje ZF! B2QPop> BT <op>, <nr> (386) $PO)" P O CF. (! ) TEST jest szybsze, ale tylko dla sprawdzania, czy bit jest 1. LOOP <etykieta> ## ' zmniejsza CX o 1 $>FPO) skacze do <etykieta> $>FT) przerywa## Y22- LOOPNZ / LOOPNE <etykieta> # Y22-# ' zmniejsza CX o 1 $>FPO).DT) skacze do <etykieta> $>FT).DT( przerywa## Y22- LOOPZ / LOOPE <etykieta> # Y22-# ' zmniejsza CX o 1 $>FPO).DT( skacze do <etykieta> $>FT).DT) przerywa## Y22- (!"5Y22-]# +$ # $ $ $"#+W+",* + Y22-]>3- +, +( *+, 5 # ' (!" H+ wskazywany jest przez DS:SI (suorce index) (!" docelowy wskazywany jest przez ES:DI (destination index) (! ) $ +$CX (!" AX#!" (!"!=5<5"!DF, gdy DF=0 # DF=1,
24 ASSEMBLER strona 24 REP STOS{W/B} 4='<5$7U>F+" >F zawartym w AX (bajtem z AL). (!"- #>F(,* +H4='<5 ", (! ) Gdy DFT( ++"#4='<5 <5 7(" # KL",B<5, STOS{W/B} 8F8Y" 4='<5<5#<DT("7 modyfikuje CX REP MOVS{W/B} - odpowiednik instrukcji REP STOSW (bez REP =Q2=*"+ <='=5 8FW8Y" 4='<5 LODS{W/B} <='R=5SW 8FW8Y,B#=5W, SCAS{W/B} +"W 4='R<5S$8FW8Y, B# #<5, CMPS{W/B} +W <='R=5S4='R<5S$<D#=5<5, REP 3 2M==Q2=$>FPO) # >F($5- +# #+14-" REPE / REPZ przedrostek dla SCAS, CMPS, gdy CX<>0 # >F$.DT(+ ##5-(" REPNE / REPNZ przedrostek dla SCAS, CMPS, gdy CX<>0 # >F$.DT)+ ##5-(" INS{W/B} <F# $ OUTS{B/W} <F H+ +(, / NOP0 +H HLT0 niemaskowalne WAIT0 $ Q4=Q0$ #
Architektura komputerów. Asembler procesorów rodziny x86
Architektura komputerów Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych
Załącznik do ćwiczenia w środowisku MASM32 wersji 10 Sterowanie przebiegiem wykonania programu
Załącznik do ćwiczenia w środowisku MASM32 wersji 10 Sterowanie przebiegiem wykonania programu Rozkaz cmp jest opisany w grupie rozkazów arytmetycznych (załącznik do ćwiczenia 3). Rozpatrzmy rozkazy procesorów
Sterowanie pracą programu
Sterowanie pracą programu Umożliwia podejmowanie decyzji w oparciu o określone warunki. Skoki bezwarunkowe Podstawową instrukcją umożliwiającą przeniesienie sterowania do innego punktu programu oznaczonego
Programowanie komputera
Programowanie komputera Program jest algorytmem przetwarzania danych zapisanym w sposób zrozumiały dla komputera. Procesor rozumie wyłącznie rozkazy zapisane w kodzie maszynowym (ciąg 0 i 1). Ponieważ
PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA
PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA PODSTAWOWE ELEMENTY ASEMBLERA Składnia języka Postać wiersza programu Dyrektywy i pseudoinstrukcje Deklaracja zmiennych Zmienne łańcuchowe
INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:
INSTRUKCJE Instrukcje przeniesienia: mov, lea, les, push, pop, pushf, popf Instrukcje konwersji: cbw, cwd, xlat Arytmetyczne instrukcje: add, inc sub, dec, cmp, neg, mul, imul, div, idiv Logiczne instrukcje:
Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów
Marcin Stępniak Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów 1. Informacje Poniższe laboratoria zawierają podsumowanie najważniejszych informacji na temat
J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler
ASSEMBLER J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler Geneza (8086, 8088). Rejestry Adresowanie pamięci Stos Instrukcje Przerwania
organizacja procesora 8086
Systemy komputerowe Procesor 8086 - tendencji w organizacji procesora organizacja procesora 8086 " # $ " % strali " & ' ' ' ( )" % *"towego + ", -" danych. Magistrala adresowa jest 20.bitowa, co pozwala
Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika
Rejestry procesora Procesor podczas wykonywania instrukcji posługuje się w dużej części pamięcią RAM. Pobiera z niej kolejne instrukcje do wykonania i dane, jeżeli instrukcja operuje na jakiś zmiennych.
Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów
Operacje na stosie Stos jest obszarem pamięci o dostępie LIFO (Last Input First Output). Adresowany jest niejawnie przez rejestr segmentowy SS oraz wskaźnik wierzchołka stosu SP. Używany jest do przechowywania
Architektura Systemów Komputerowych
Jarosław Kuchta Architektura Systemów Komputerowych ćwiczenie 3 Arytmetyka całkowita instrukcja laboratoryjna Wprowadzenie Celem ćwiczenia jest zapoznanie się z budową i sposobem działania jednostki arytmetyczno-logicznej
Architektura Systemów Komputerowych, Wydział Informatyki, ZUT
Laboratorium: Wprowadzenie Pojęcia. Wprowadzone zostaną podstawowe pojęcia i mechanizmy związane z programowaniem w asemblerze. Dowiemy się co to są rejestry i jak z nich korzystać. Rejestry to są wewnętrzne
end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze.
Struktura programu typu program.com ; program według modelu tiny name "mycode" ; nazwa pliku wyjściowego (maksymalnie 8 znaków) org 100h ; początek programu od adresu IP = 100h ; kod programu ret ; koniec
Programowanie niskopoziomowe
Programowanie niskopoziomowe ASSEMBLER Teodora Dimitrova-Grekow http://aragorn.pb.bialystok.pl/~teodora/ Program ogólny Rok akademicki 2011/12 Systemy liczbowe, budowa komputera, procesory X86, organizacja
Architektura komputerów
Architektura komputerów Wykład 8 Jan Kazimirski 1 Assembler x86 2 Podstawowe instrukcje x86 Instrukcje transferu danych Arytmetyka binarna i dziesiętna Instrukcje logiczne Instrukcje sterujące wykonaniem
Sprzęt i architektura komputerów
Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I
Floating Point Unit Koprocesor umożliwia działania na liczbach ułamkowych (zmiennoprzecinkowych) 8 rejestrów 80-bitowych: st0,,st7 Typy danych
Lab 8 FPU Floating Point Unit Koprocesor umożliwia działania na liczbach ułamkowych (zmiennoprzecinkowych) 8 rejestrów 80-bitowych: st0,,st7 Typy danych Pojedyncza precyzja. Liczby takie zajmują po 32
Sprzęt i architektura komputerów
Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I
Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86
Wprowadzenie do Architektury komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych grup: 1. Rozkazy przesłania danych w
PROGRAMY REZYDENTNE Terminate and State Resident, TSR
PROGRAMY REZYDENTNE Terminate and State Resident, TSR O co tu chodzi Podstawowe reguły Jak może program zostać rezydentnym Przechwytywanie przerwań Jak się samoznaleźć w pamięci Aktywacja TSR-u. Problemy
5. Mikroprocesory 8086 i 8088
Mikroprocesory 8086 i 8088 5. Mikroprocesory 8086 i 8088 Mikroprocesory 8086 i 8088 (ich twórca - firma Intel - stosuje oznaczenia iapx86 i iapx88 odpowiednio) są układami wielkiej skali integracji (LSI)
Architektura komputerów
Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania
Zuzanna Hartleb i Artur Angiel
ARCHITEKTURA KOMPUTERÓW - LABORATORIUM Program hybrydowy Dokumentacja ćw. 1-4 Zuzanna Hartleb i Artur Angiel 2010-06-16 Działanie Program pobiera od użytkownika liczbę zmiennoprzecinkową, sprawdza poprawnośd
Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4
Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest
CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki
Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Komputer jest urządzeniem, którego działanie opiera się na wykonywaniu przez procesor instrukcji pobieranych z pamięci operacyjnej
Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86
Wprowadzenie do Architektury komputerów Asembler procesorów rodziny x86 Budowa procesora rodziny x86 Rejestry procesora 8086 ogólnego przeznaczenia Dla procesorów 32-bitowych: EAX, EBX, ECX, EDX Dla procesorów
Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna
Architektura komputerów. Literatura: 1. Piotr Metzger, Anatomia PC, wyd. IX, Helion 2004 2. Scott Mueller, Rozbudowa i naprawa PC, wyd. XVIII, Helion 2009 3. Tomasz Kowalski, Urządzenia techniki komputerowej,
Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych
Ćwiczenie nr 3 Wyświetlanie i wczytywanie danych 3.1 Wstęp Współczesne komputery przetwarzają dane zakodowane za pomocą ciągów zerojedynkowych. W szczególności przetwarzane liczby kodowane są w systemie
Programowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 10: Arytmetyka całkowitoliczbowa Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wprowadzenie Instrukcje przesunięcia bitowego
CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.
Architektura 8086 8086 posiada 4 rejestry ogólnego użytku AX, BX, CX, DX, 2 rejestry indeksowe SI, DI, 3 rejestry wskaźnikowe SP, BP, IP, 4 rejestry segmentowe CS, DS, SS i ES oraz rejestr flag FLAG AH
Lista instrukcji mikroprocesora 8086. Programowanie w assemblerze
Lista instrukcji mikroprocesora 8086 Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora
Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2
Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci,
PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012
PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 4 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 c Dr
Mikrokontroler ATmega32. Język symboliczny
Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami
Technika mikroprocesorowa I Wykład 2
Technika mikroprocesorowa I Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci, -odczyt-zapis urządzenia we-wy,
Ćwiczenie 3. Konwersja liczb binarnych
1 Laboratorium Architektury Komputerów Ćwiczenie 3 Konwersja liczb binarnych Komputery wykonują operacje przetwarzania danych na wartościach binarnych, podczas gdy współczesna cywilizacja posługuje się
Informacje wstępne. Historia Maszyna Turinga
Informacje wstępne 1 Wykład obejmuje wprowadzenie do techniki mikroprocesorowej omówienie budowy i sposobu działania mikroprocesora pamięci cyfrowe magistrale urządzenia wejścia wyjścia rozwiązania stosowane
Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.
Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania. Dlatego trzeba je zapisywać do pliku, a potem umieć je z tego
PROGRAMOWANIE NISKOPOZIOMOWE
PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 Wprowadzenie
STRUKTURA I ORGANIZACJA STOSU (FILO- First In Last Out) Rejestry stosu: SS i SP (Stack Segment i Stack Pointer)
STOS I PROCEDURY STRUKTURA I ORGANIZACJA STOSU (FILO- First In Last Out) Rejestry stosu: SS i SP (Stack Segment i Stack Pointer) a) Stan początkowy b) Po załadowania pierwszego elementu (tu - zawartość
Programowanie w asemblerze Architektura procesora
Programowanie w asemblerze Architektura procesora 17 stycznia 2017 Zwana też ISA (Instruction Set Architecture). Klasyfikacja stos; akumulator; jeśli dodatkowe rejestry specjalizowane (np. adresowy), to
Adam Kotynia, Łukasz Kowalczyk
Adam Kotynia, Łukasz Kowalczyk Dynamiczna alokacja pamięci Alokacja pamięci oraz dezalokacja pamięci jest to odpowiednio przydział i zwolnienie ciągłego obszaru pamięci. Po uruchomieniu, proces (program)
Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin
Podstawy techniki cyfrowej Mikroprocesory Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin 1 Mikroprocesor to układ cyfrowy wykonany jako pojedynczy układ scalony o wielkim stopniu integracji zdolny do wykonywania
Procesor Intel 8086 model programisty. Arkadiusz Chrobot
Procesor Intel 8086 model programisty Arkadiusz Chrobot 26 września 2011 Spis treści 1 Wstęp 2 2 Rejestry procesora 8086 2 3 Adresowanie pamięci 4 4 Ważne elementy języka Pascal 8 1 1 Wstęp Głównym celem
Procesor Intel 8086 model programisty. Arkadiusz Chrobot
Procesor Intel 8086 model programisty Arkadiusz Chrobot 5 października 2008 Spis treści 1 Wstęp 2 2 Rejestry procesora 8086 2 3 Adresowanie pamięci 4 4 Ważne elementy języka Pascal 6 1 1 Wstęp Głównym
Programowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 8: Procedury Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Linkowanie z bibliotekami zewnętrznymi Operacje na stosie
Kod hex Instrukcja Opis 37 AAA Koryguj AL po dodawaniu BCD
AAA ASCII adjust after addition 37 AAA Koryguj AL po dodawaniu BCD AAA powoduje korekcję znajdującego się w AL wyniku dodawania dwóch liczb, o ile dodawane są liczby BCD. Dopiero po korekcji wynik będzie
Architektura komputerów
Architektura komputerów Tydzień 5 Jednostka Centralna Zadania realizowane przez procesor Pobieranie rozkazów Interpretowanie rozkazów Pobieranie danych Przetwarzanie danych Zapisanie danych Główne zespoły
Procesory rodziny x86. Dariusz Chaberski
Procesory rodziny x86 Dariusz Chaberski 8086 produkowany od 1978 magistrala adresowa - 20 bitów (1 MB) magistrala danych - 16 bitów wielkość instrukcji - od 1 do 6 bajtów częstotliwośc pracy od 5 MHz (IBM
Lista rozkazów mikrokontrolera 8051
Lista rozkazów mikrokontrolera 8051 Spis treści: Architektura mikrokontrolera Rozkazy Architektura mikrokontrolera Mikrokontroler 8051 posiada trzy typy pamięci: układ zawiera pamięć wewnętrzną (On-Chip
petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla
Asembler A51 1. Symbole Nazwy symboliczne Symbol jest nazwą, która może być użyta do reprezentowania wartości stałej numerycznej, wyrażenia, ciągu znaków (tekstu), adresu lub nazwy rejestru. Nazwy symboliczne
Metody Realizacji Języków Programowania
Metody Realizacji Języków Programowania Bardzo krótki kurs asemblera x86 Marcin Benke MIM UW 10 stycznia 2011 Marcin Benke (MIM UW) Metody Realizacji Języków Programowania 10 stycznia 2011 1 / 22 Uwagi
Organizacja typowego mikroprocesora
Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają
MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW
MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje
Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach
Marcin Stępniak Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach 1. Informacje Matematyk o nazwisku Bool wymyślił gałąź matematyki do przetwarzania wartości prawda
1. Operacje logiczne A B A OR B
1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne
Programowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler
Programowanie hybrydowe C (C++) - assembler MS Visual Studio Inline Assembler Wprowadzenie Możliwość wprowadzania kodu asemblerowego bezpośrednio w kodzie źródłowym w języku C lub C++ Nie wymagany MASM
Podstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>
Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch
Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe
Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe Ryszard J. Barczyński, 2009 2013 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego
Jerzy Nawrocki, Wprowadzenie do informatyki
Magistrala systemowa Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Asembler i koncepcja von Neumanna Wprowadzenie do programowania na
Programowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,
Wstęp do assemblera MA51
Wstęp do assemblera MA51 Ryszard J. Barczyński, 2017 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Assembler Assembler to język programowania
Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury
Marcin Stępniak Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury 1. Informacje 1.1. Stos Stos jest strukturą danych, w której dane dokładane są na wierzch stosu
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok
Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle
Marcin Stępniak Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle 1. Informacje 1.1. Instrukcje skoku Instrukcje skoku zmieniają wskaźnik instrukcji w rejestrze
Mikroprocesor Intel 8088 (8086)
Mikroprocesor Intel 8088 (8086) Literatura: Mroziński Z.: Mikroprocesor 8086. WNT, Warszawa 1992 iapx 86,88 Users Manual Intel 80C86 Intersil 1997 [Źródło: www.swistak.pl] Architektura wewnętrzna procesora
Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne
Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne Ryszard J. Barczyński, 2016 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego
Programowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 4: Architektura i zarządzanie pamięcią IA-32 Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Tryby pracy Rejestry
. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A
Symulator Escape Konfiguracja ogólna Enable MUL and DIV Complete Set of Comp.Oper Sign Extension of B/H/W Memory Oper on B/H/W Program Program Dane Dane Załaduj konfigurację symulatora (File -> OpenFile)
Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:
Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym
Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]
Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową
1. Asembler i wstawki asemblerowe w C
Opublikowano w: WEREWKA J..: Programowanie sprzętu komputerowego dla automatyków. Skrypt AGH Nr 1514, Kraków 1998 1. Asembler i wstawki asemblerowe w C Asembler jest językiem programowania na poziomie
Wstęp do Reverse engineeringu
Wstęp do Reverse engineeringu O mnie Agnieszka Bielec Eternal pracuję w CERT Polska jako Malware Analyst CTFy z p4 prowadze bloga eternal.red lubie ścianki wpinaczkowe i rower twitter Reverse Engineering
Język programowania: Lista instrukcji (IL Instruction List)
Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski 08.12.2009 Norma IEC 1131 Języki tekstowe Języki graficzne
UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.
Zadaniem centralnej jednostki przetwarzającej CPU (ang. Central Processing Unit), oprócz przetwarzania informacji jest sterowanie pracą pozostałych układów systemu. W skład CPU wchodzą mikroprocesor oraz
Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.
Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach
002 Opcode Strony projektu:
ReverseCraft assem bler by gynvael.coldwind//vx Opcode Strony projektu: http://re.coldwind.pl/ http://www.uw-team.org/ Zasoby! czyli co możemy użyć... Instrukcje procesora Pamięć Wirtualna Rejestry CPU
1. Pobrać plik masm.zip (Macro Assembler 6.15 & Segmented Executable Linker 5.60) (http://www.cs.put.poznan.pl/mantczak/teaching/itc/masm.zip).
J.Nawrocki, M. Antczak, G. Palik, A. Widelska Plik źródłowy: 07cw4-asm.doc; Data: 2007-09-26 6:00 Ćwiczenie nr 4 Język asemblera Środowisko uruchomieniowe 1. Pobrać plik masm.zip (Macro Assembler 6.15
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe
Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
Odczyt danych z klawiatury Operatory w Javie
Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje
Struktura i działanie jednostki centralnej
Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala
Notatka Aplikacyjna NA 03006PL Maj 2016
Notatka Aplikacyjna NA 03006PL Spis treści 1. Wstęp... 2 1.1. Wymagania programowe... 2 2. Tworzenie projektu i dodawanie programu w... 3 3. Organizacja okien dla języka IL... 5 4. Składnia języka IL...
Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:
Wykład 3 3-1 Reprezentacja liczb całkowitych ze znakiem Do przedstawienia liczb całkowitych ze znakiem stosowane są następujące kody: - ZM (znak-moduł) - U1 (uzupełnienie do 1) - U2 (uzupełnienie do 2)
Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek
Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,
Język C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
Różności w C++ Marek Pudełko
Różności w C++ Marek Pudełko Kodowanie i reprezentacja liczb 2 Kodowanie uzupełnieniowe U1 i U2 Bity liczby numerujemy od 0 do k 1 Bitom nr j, j < k 1 przyporządkowuje się wagi w j =2 j Najstarszej pozycji
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Programowanie mikrokontrolera 8051
Programowanie mikrokontrolera 8051 Podane poniżej informacje mogą pomóc w nauce programowania mikrokontrolerów z rodziny 8051. Opisane są tu pewne specyficzne cechy tych procesorów a także podane przykłady
Ćwiczenie nr 4. Zasady kodowania podprogramów
Ćwiczenie nr 4 Zasady kodowania podprogramów 4.1 Wstęp W praktyce programowania spotykamy się często z sytuacjami, gdy identyczne czynności wykonywane są w wielu miejscach programu. W takich przypadkach
Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED
Ćwiczenie 2 Siedmiosegmentowy wyświetlacz LED 2-1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się studentów ze sposobem obsługi wielopozycyjnego 7-segmentowego wyświetlacza LED multipleksowanego programowo
Przerwania w architekturze mikrokontrolera X51
Przerwania w architekturze mikrokontrolera X51 (przykład przerwanie zegarowe) Ryszard J. Barczyński, 2009 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory
Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.
Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy
Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,
Temat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,