Instrukcje procesorów rodziny 80x86 (A)

  • 2003-01-23 22:04
  • 3 komentarzy
  • 3294 odsłony

Krótki opis przerwań obsługi klawiatury i dysków IBM PC

  • 2002-12-01 14:37
  • 0 komentarzy
  • 5171 odsłon

Instrukcje procesorów 8086-Pentium

  • 2002-11-15 22:34
  • 5 komentarzy
  • 4248 odsłon

Rejestry

  • 2002-10-29 11:43
  • 2 komentarzy
  • 17723 odsłony

33 komentarzy

Ohh Darryl no need to explain that much ...take a chill pill
Checkout #1 site in doha for online shopping DohaSooq
& http://www.nemmadi.in

Assembly language. An assembly (or assembler) language, often abbreviated asm, is a low-level programming language for a computer, or other programmable device, in which there is a very strong (but often not one-to-one) correspondence between the language and the architecture's machine code instructions.

Foe Example : Lets see how clock works Clock

CGROUP GROUP VECTOR,CODESEG
VECTOR SEGMENT AT 0H
DB 6CH DUP(?) ;FILLER
TIME_LO DW ? ;DOS TIME
TIME_HI DW ? ;DOS TIME
VEC_IP DW ;CLOCK UPDATE VECTOR IP
VEC_CS DW ;CLOCK UPDATE VECTOR CS
VECTOR ENDS

CODESEG SEGMENT PARA
ASSUME CS:CODESEG,DS:CGROUP
ORG 100H
CLK PROC FAR
JMP SETUP ;ATTACH TO DOS
INTRPT LABEL DWORD
INT_IP DW 0 ;OLD UPDATE VECTOR IP
INT_CS DW 0 ;OLD UPDATE VECROR CS
TICKS DW 0 ;TICK COUNTER
SCR_OFF DB 0,0 ;SCREEN OFFSET IN BUFFER
CRT_PORT DW 0 ;SCREEN STATUS PORT
flag db 0
TIME DB 8 DUP(':',0BH) ;TIME SAVE AREA
CLK_INT LABEL NEAR
PUSH AX ;SAVE REGISTERS
PUSH CX
PUSH DI
PUSH SI
PUSH DS
PUSH ES
PUSHF ; AND FLAGS
CALL CS:[INTRPT] ;DO OLD UPDATE INTERRUPT
MOV CX,0040H ;GET SEGMENT OF DOS TABLE
MOV DS,CX ;PUT IN DS
MOV CX,CS:TICKS ;GET TICK COUNT
INC CX ;INCREMENT IT
CMP CX,20 ;01F4H ;HAS A MINUTE GONE BY?
JB NO_MINUTE ;NO, MOVE ON
CALL UPDATE ;YES, UPDATE CLOCK AND
MOV CX,0 ; RESET TICK COUNTER
NO_MINUTE:
MOV CS:TICKS,CX ;SAVE UPDATED TICK COUNT
MOV CX,0B000H ;GET VIDEO SEGMENT
MOV ES,CX ;PUT IN ES
MOV DX,CS:CRT_PORT ;GET CRT STATUS PORT ADDR
MOV DI,WORD PTR CS:SCR_OFF ;GET SCREEN BUFFER OFFSET
LEA SI,CS:TIME ;GET DOS TIME
MOV CX,16 ;SET UP TO MOVE 10 BYTES
CLI ;DISABLE OTHER INTERRUPTS
WAIT1: IN AL,DX ;READ CRT STATUS
TEST AL,1 ;CHECK FOR VERTICAL RETRACE
JNZ WAIT1 ;WAIT FOR RETRACE LOW
MOV AH,CS:[SI] ;GET FIRST BYTE TO MOVE
WAIT2: IN AL,DX ;GET CRT STATUS
TEST AL,1 ;CHECK FOR VERTICAL RETRACE
JZ WAIT2 ;WAIT FOR RETRACE HIGH
MOV ES:[DI],AH ;MOVE BYTE TO SCREEN
INC DI ;INCREMENT INDEX
INC SI
LOOP WAIT1 ;MOVE NEXT BYTE
STI ;ENABLE INTERRUPTS
POP ES ;RESTORE REGISTERS
POP DS
POP SI
POP DI
POP CX
POP AX
IRET ;RETURN FROM INTERRUPT
CLK ENDP
UPDATE PROC NEAR
PUSH AX ;SAVE REGISTERS
PUSH BX
PUSH CX
PUSH DX
PUSH DS
MOV AX,0040H ;GET ADDRESS OF DOS TABLE
MOV DS,AX ;PUT IN DS
MOV AX,TIME_HI ;GET HIGH BYTE OF DOS TIME
mov flag,0 ;am flag
HOUR: CMP AX,0CH ;CONVERT TO HOURS
JLE H1
mov flag,1 ;set to pm
SUB AX,0CH
JMP HOUR
H1: AAM ;CONVERT TO ASCII
ADD AX,3030H
LEA BX,CS:TIME ;GET ADDRESS OF TIME AREA
MOV CS:[BX],AH ;SAVE HOURS FIRST DIGIT
MOV CS:[BX+2],AL ;SAVE HOURS SECOND DIGIT
MOV AX,TIME_LO ;GET DOS TIME LOW BYTE
MOV CX,8H ;CONVERT TO MINUTES
SHR AX,CL
MOV DX,3CH
MUL DL
SHR AX,CL
AAM ;CONVERT TO ASCII
ADD AX,3030H
MOV CS:[BX+6],AH ;SAVE MINUTES FIRST DIGIT
MOV CS:[BX+8],AL ;SAVE MINUTES SECOND DIGIT
mov byte ptr cs:[bx+12],'a'
cmp flag,0 ;is it am?
jz goahead
mov byte ptr cs:[bx+12],'p'
goahead:
mov byte ptr cs:[bx+14],'m'
POP DS ;RESTORE REGISTERS
POP DX
POP CX
POP BX
POP AX
RET
UPDATE ENDP
SETUP: MOV AX,0 ;GET ADDRESS OF VECTOR TABLE
MOV DS,AX ;PUT IN DS
CLI ;DISABLE FURTHER INTERRUPTS
MOV AX,[VEC_IP] ;GET ADDRESS OF OLD UPDATE IP
MOV CS:[INT_IP],AX ;SAVE IT
MOV AX,[VEC_CS] ;GET ADDRESS OF OLD UPDATE CS
MOV CS:[INT_CS],AX ;SAVE IT
MOV VEC_IP,OFFSET CLK_INT ;PUT ADDRESS OF CLK IN VECTOR IP
MOV VEC_CS,CS ;PUT CS OF CLK IN VECTOR CS
STI ;ENABLE INTERRUPTS
MOV AH,0FH ;READ VIDEO STATUS
INT 10H
SUB AH,8 ;SUBTRACT 8 CHAR TIME FROM NCOLS
SHL AH,1 ;MULTIPLY BY 2 FOR ATTRIBUTE
MOV CS:SCR_OFF,AH ;SAVE SCREEN TIME LOCATION
MOV WORD PTR CS:CRT_PORT,03BAH ;SAVE MONO STATUS PORT ADDR
TEST AL,4 ;CHECK FOR COLOR MONITOR
JNZ MONO ;IF MONO, MOVE ON
ADD WORD PTR CS:SCR_OFF,8000H ;ADD COLOR OFFSET TO TIME OFFSET
MOV WORD PTR CS:CRT_PORT,03DAH ;SAVE COLOR STATUS PORT ADDR
MONO: CALL UPDATE ;DO FIRST UPDATE & PRINT TIME
MOV DX,OFFSET SETUP ;GET END ADDRESS OF NEW INTERRUPT
INT 27H ;TERMINATE AND REMAIN RESIDENT
DB 117 DUP(0) ;FILLER
CODESEG ENDS
END CLK
I hope you know all these things
web Developer @ RailsCarma & Carmatec

Well, a few minutes with our Pimple Popper app and you'll feel better.http://downloadsoftwarefrommackenzie.online RED/CYAN, GREEN/MAGENTA (iPhone 3GS highly recommended).

You could definitely see your skills within the paintings you write. The world hopes for more passionate writers such as you who aren’t afraid to say how they believe. Always go after your heart.
http://www.kicksvovo.com/

We have to admit, it took us way longer than necessary to test BanderSnatch, because we couldn't stop playing it.http://mydownloadfilesdatabase.us Celebrate in style with PARTY TRICKS: The Ultimate Entertaining Guide.

Very good, I think I found the knowledge I needed. I will see and refer some information in your post. thank you.
html color

It is my first time I visit here. The way you create a website very thorough and good. This is very very impressive. I found so many entertaining stuff in your blog, especially its discussion. I will continually be coming on a regular basis you just read your posts.
animal jam, a10, color switch

Scan the clues and roll the wheels to find words locked inside the jumble of letters.http://malumot.ru/personalization/burnstown-dam-font.php You can customize the Name Generator's endings lists by adding or removing words, and create your own endings lists for even more name combinations.

So much great info in all teh articles presented here. it pc expert

Sympatyczny, to muzeum programowania agence web dijon netref

It can cause lag and wastes a lot of system resources\n.http://downloadlagustafa.com/[...]rasoft-downloaden-gratis.html Fixed issues with ads causing loops in ending/gameover.

Wheresit can tell which direction you are heading in if you have a built-in compass. http://getfreethingshere.us Each story has two versions a Quick Read for those pressed for time and a Read for those who savor more intimate detail.

Dobra strona z dużą ilością przydatnych i ciekawych informacji na samokształcenie
restaurants near me

Dziękuję za informacje! Szukałem i nie mogłem znaleźć. Pomogłeś mi!
sprint corporate

Merci pour cet espace de parole. Que puis-je vous dire autre que d'aller visiter mon site : www.bricabrac-service.com. Une plateforme pour les filles et les femmes. Des thématiques féminines et des articles sympas à lire.

Behind the sunny days, there will be rain and rain, so never lose faith, and keep walking, going to the end of your path.
super smash flash 2
bloons tower defense 5

I was surfing net and fortunately came across this site and found very interesting stuff here. Its really fun to read. I enjoyed a lot. Thanks for sharing this wonderful information.
http://downloadallfilesfast.bid

Thanks for sharing this information. I really like your blog post very much. You have really shared a informative and interesting blog post with people.
http://downloadtopfilesblog.com

Nice to be visiting your blog again, it has been months for me. Well this article that i've been waited for so long. I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, great share.
http://crassula-nn.ru

Please continue this great work and I look forward to more of your awesome blog posts.
http://liuhey.com

Hej, potrzebuje pomocy odnośnie wytłumaczenia o co chodzi w poszczególnych linijkach kodu (programujemy w Keil'u płyty główne, działamy na płycie MKD51), będę po prostu z tego odpowiadał. Mam program który przerobiłem z innego programu (bardzo podobnego), a że orłem w programowaniu nie jestem za bardzo nie wiem o co w nim chodzi, a program jakoś udało mi się napisać.

Polecenie:
Napisać program w języku Assemblera, w którym diody L4 i L8 zapalają się naprzemiennie,
przyciskiem Xo zapalamy wszystkie diody,
przyciskiem X1 diody zaczynają mrugać dwukrotnie szybciej,
przyciskiem X2 diody przestają się zapalać.

Gdyby ktoś potrafił pomóc mi i napisać pokrótce w postaci komentarzy co mniej więcej 'robi' dana linijka. Z góry dziękuję bardzo

org 0
L5 EQU 0
L4 equ 16

funkcja1:
MOV DPTR,#8008H
MOVX A,@DPTR
cpl a
jb acc.2,wyl
jb acc.1,stop

mov A,#L4
MOV DPTR,#8009H
movx @DPTR,A
clr P1.6

lcall wait
MOV DPTR,#8008H
MOVX A,@DPTR
cpl a

jb acc.2,wyl
jb acc.1,stop
jb acc.0,wait2

bck1:
setB P1.6
mov A,#0
MOV DPTR,#8009H
movx @DPTR,A

lcall wait
MOV DPTR,#8008H
MOVX A,@DPTR
cpl a
jb acc.0,wait3

bck2:
LJMP wroc

wait:
inc DPTR
mov A,DPL
orl A,DPH
jnz wait
ret

wait2:
inc DPTR
mov A,DPL
orl A,DPH
jnz wait2
jmp bck1

wait3:
inc DPTR
mov A,DPL
orl A,DPH
jnz wait3
jmp bck2

stop:
ljmp wroc
ret

wyl:
clr P1.6
mov A,#0
MOV DPTR,#8009H
MOVX @DPTR,A
ljmp wroc
ret

end

Witam serdecznie, dzisiaj zaczalem przygode z Asemblere, zainstalowalem Masm32 i Easy Code Masm.

Jestem w tym zielony a mam napisac 3 programy na zaliczenie. Prosiłbym o pomoc w tym zagadnieniu. O to tematy:

  1. Napisz program który wprowadzi z klawiatury napis(8znakow) i wyswietli go na ekranie w porządku odwrotnym.

  2. Napisz program który zamieni liczbe binarną zapisaną na jednym bajcie na liczbę w systemie dziesiętnym i wyświetli ją na ekranie

  3. Napisz program który pozwoli na zmianę nazwy pliku umieszczonego na dysku C.

Czy ktoś jest na tyle biegły w Asemblerze aby to napisac ?
Z góry dzieki.

przywróciłem pustą kategorię, bo to co było.. to był jakiś żart

Teraz możesz zrobić to dla mnie łatwe do zrozumienia i wdrożenia koncepcji. Dziękuję za post naprawdę wielkich wysiłków. Jestem naprawdę szczęśliwy, aby zobaczyć swój blog. http://nopsoriasis.net/

In order to learn customer service phone number and receive detailed informations about the company, click on the link:
http://1-800-number.net 1800 numbers customer service
http://1-800-number.net/geico-1-800-number/ geico customer service 1800 numbers
http://1-800-number.net/comcast-1-800-number/ comcast customer service number
http://1-800-number.net/wells-fargo-1-800-number/ wells fargo customer service free numbers
http://1-800-number.net/fm-bank-trust-1-800-number/ f&m bank free numbers

Mam dwa proste programy (tylko do poprawienia błędów logicznych). Jest to praca domowa na 1 rok studiów, czy ktoś mi pomoże ?
Wynagrodzę !

Do tych którzy mają problem z plikiem boot.rar:
Autor zrobił w pliku kilka błędów. Mianowicie przy argumencie INCLUDE przy określeniu ścieżki wywala błąd, gdyż jest to źle napisane powinno być tak: INCLUDE "include/plik.INC gdzie plik to nazwa pliku.

nie mogę skompilować boot.rar na nasm-ie. Wyskakuje mi jakieś 100 błędów. Kto ma poprawkę?:)

Raczej po co robić bajzel w komentarzach...

Mam pytanie co do boot.rar - jak to podlinkować? Wole LD bo tlinka nigdy nie łapę :/
Wiem, że to nie tu się zadaje pyt. ale po co robic bajzel na forum

pewnie krotki wprowadzenie do jezyka :D

omg, Morgoth_: co to ma być??? :|