Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TITLE MASM Template (main.asm)
- INCLUDE Irvine32.inc
- .data
- dlzka EQU 101
- post DW dlzka dup(?), 0
- pocetCisel DB "Kolko chcete nacitat cisel (MAX 100)? ", 0
- zadanie DB "Zadavajte cisla postupnosti: ", 0
- pocet DD 6 dup(?)
- .code
- main PROC
- call Clrscr
- mov edx, OFFSET pocetCisel
- call WriteString
- call ReadDec
- mov edx, OFFSET zadanie
- call WriteString
- call CrLf
- mov ecx, eax
- mov pocet, eax
- mov edi, 0
- xor eax, eax
- Nacitavanie:
- call ReadInt
- mov post[edi*2], ax
- inc edi
- loop Nacitavanie
- call CrLf
- ;VYHLADA MINIMUM
- mov ecx, pocet
- mov edi, 0
- xor eax, eax
- movsx eax, post[edi*2]
- mov ebx, 0
- Cyklus:
- cmp ax, post[edi*2]
- jle Nemenit
- movsx eax, post[edi*2]
- mov ebx, edi
- Nemenit:
- inc edi
- loop Cyklus
- call WriteInt
- call CrLf
- xor eax, eax
- mov eax, ebx
- call WriteInt
- exit
- main ENDP
- END main
- TITLE MASM Template (main.asm)
- INCLUDE Irvine32.inc
- .data
- A REAL4 -4.0
- B REAL4 1.0
- Vysledok REAL4 ?
- Plus DB "Cislo je kladne",0Ah,0Dh,0
- Minus DB "Cislo je zaporne",0Dh,0Ah,0
- Exp DB "Exponent:",0
- Mant DB "Absolutna hodnota mantisy za radovou ciarkou:",0Dh,0Ah,0
- Cislo DB "1"
- Jedna DD 0400000h
- Hex DB "Hexadecimalne:",0
- Bin DB "Binarne:",0
- .code
- Cakaj MACRO
- call CrLf
- call WaitMsg
- call CrLf
- ENDM
- PisRetaz MACRO pRetaz
- mov edx, offset pRetaz
- call WriteString
- ENDM
- main PROC
- call Clrscr
- finit ; st(0) st(1) st(2)
- fld A ; a
- fld B ; b a
- call showFPUstack
- Cakaj
- fadd
- call showFPUstack
- Cakaj
- fstp Vysledok
- call showFPUstack
- Cakaj
- fld Vysledok
- call showFPUstack
- Cakaj
- exit
- main ENDP
- END main
- TITLE MASM Template (main.asm)
- INCLUDE Irvine32.inc
- .data
- A REAL4 ?
- B REAL4 ?
- Vysledok REAL4 ?
- X REAL10 ?
- Y REAL10 ?
- Vysledok1 REAL10 ?
- Zadaj DB 0Dh,0Ah,"Zadaj cislo:",0
- .code
- Cakaj MACRO
- call CrLf
- call WaitMsg
- call CrLf
- ENDM
- Citaj MACRO
- mov edx, OFFSET Zadaj
- call WriteString
- ENDM
- main PROC
- call Clrscr
- finit ; st(0) st(1) st(2)
- Citaj
- call ReadFloat ; a
- Citaj
- call ReadFloat ; b a
- call showFPUstack
- Cakaj
- fadd
- call showFPUstack
- Cakaj
- fstp Vysledok
- call showFPUstack
- Cakaj
- fld Vysledok
- call showFPUstack
- Cakaj
- call WriteFloat
- Cakaj
- finit
- Citaj
- call ReadFloat ; x
- Citaj
- call ReadFloat ; y x
- call showFPUstack
- Cakaj
- fadd
- call showFPUstack
- Cakaj
- fstp Vysledok1
- call showFPUstack
- Cakaj
- fld Vysledok1
- call showFPUstack
- Cakaj
- call WriteFloat
- Cakaj
- exit
- main ENDP
- END main
- TITLE MASM Template (main.asm)
- INCLUDE Irvine32.inc
- .data
- valA REAL8 1.5
- valB REAL8 2.5
- valC REAL8 3.0
- valD REAL8 ? ; malo by byt+6.0
- N SDWORD 20
- X REAL8 3.5
- Z REAL8 ?
- .code
- Cakaj MACRO
- call CrLf
- call WaitMsg
- call CrLf
- ENDM
- main PROC ; Vypocet: valD = –valA + (valB * valC).
- call ClrSCr
- finit
- fld valA ; ST(0) = valA
- fchs ; zmena znamienka ST(0)
- fld valB ; vloz valB do ST(0)
- call showFPUstack
- Cakaj
- fmul valC ; ST(0) *= valC
- call showFPUstack
- Cakaj
- fadd ; ST(0) += ST(0) + ST(1)
- call WriteFloat
- fstp valD ; uloz ST(0) to valD a odstran zo zasobnika
- call showFPUstack
- Cakaj
- ; Kombinacia celociselnej a realnej aritmetiky
- ; FPU ma instrukcie, ktore transformuju cele cisla do FP formatu a vlozia hodnoty do FP zasobnika
- ; Priklad : Z = N + X
- finit
- call ReadInt
- call WriteInt
- call CrLf
- mov N, eax
- call ReadFloat
- call WriteFloat
- call CrLf
- fstp X
- fild N ; vloz cele cislo do ST(0)
- fwait ; pockaj na spraqcovanie vynimiek
- call showFPUstack
- Cakaj
- fadd X ; scitaj obsah X s ST(0)
- call showFPUstack
- Cakaj
- fstp Z ; uloz obsah ST(0) do pamati
- call showFPUstack
- Cakaj
- exit
- main ENDP
- END main
- TITLE MASM Template (main.asm)
- INCLUDE Irvine32.inc
- .data
- epsilon REAL8 1.0E-12 ; diferencia
- val1 REAL8 0.0 ; hodnota 1
- val2 REAL8 1.001E-13 ; hodnota 2
- Rovnake DB 0Dh,0Ah,"Su priblizne rovnake",0Dh,0Ah,0
- Ine DB 0Dh,0Ah,"Su ine....",0Dh,0Ah,0
- Zadaj DB 0Dh,0Ah,"Zadaj cislo:",0
- .code
- Cakaj MACRO
- call CrLf
- call WaitMsg
- call CrLf
- ENDM
- Citaj MACRO
- mov edx, OFFSET Zadaj
- call WriteString
- call ReadFloat
- ENDM
- ; Porovnanie FP hodot
- main PROC
- call ClrSCr
- finit
- fld epsilon
- fld val1
- call showFPUstack
- Cakaj
- fsub val2
- fabs
- call showFPUstack
- Cakaj
- fcomi ST(0),ST(1)
- ja Dalej
- mov edx, OFFSET Rovnake
- call writeSTring
- jmp Pokracuj
- Dalej:
- mov edx, OFFSET Ine
- call writeSTring
- Pokracuj:
- finit
- Citaj
- Citaj
- call showFPUstack
- Cakaj
- fcomi ST(0),ST(1)
- jz Koniec
- fsub
- fabs
- fld epsilon
- call showFPUstack
- Cakaj
- fcomi ST(0),ST(1)
- jnae Dalej1
- mov edx, OFFSET Rovnake
- call writeSTring
- jmp Pokracuj1
- Dalej1:
- mov edx, OFFSET Ine
- call writeSTring
- Pokracuj1:
- Cakaj
- jmp Pokracuj
- Koniec:
- call showFPUstack
- Cakaj
- exit
- main ENDP
- END main
- TITLE MASM Template (main.asm)
- INCLUDE Irvine32.inc
- .data
- intVal DWORD 25
- .code
- Cakaj MACRO
- call CrLf
- call WaitMsg
- call CrLf
- ENDM
- main PROC
- call ClrSCr
- ; synchronizacia FPU a CPU
- Dalej:
- finit
- mov eax, intVal
- call WriteInt
- call CrLf
- fild intVal ; vloz cele cislo do ST(0)
- fwait ; cakaj na spracovanie vynimiek
- inc intVal ; inkrementuj cele cislo
- mov eax, intVal
- call WriteInt
- call CrLf
- call showFPUstack
- Cakaj
- exit
- main ENDP
- END main
- TITLE MASM Template (main.asm)
- INCLUDE Irvine32.inc
- .data
- A REAL4 -4.0
- B REAL4 1.0
- Vysledok REAL4 ?
- Plus DB "Cislo je kladne",0Ah,0Dh,0
- Minus DB "Cislo je zaporne",0Dh,0Ah,0
- Exp DB "Exponent:",0
- Mant DB "Absolutna hodnota mantisy za radovou ciarkou:",0Dh,0Ah,0
- Cislo DB "1"
- Jedna DD 0400000h
- Hex DB "Hexadecimalne:",0
- Bin DB "Binarne:",0
- .code
- Cakaj MACRO
- call CrLf
- call WaitMsg
- call CrLf
- ENDM
- PisRetaz MACRO pRetaz
- mov edx, offset pRetaz
- call WriteString
- ENDM
- main PROC
- call Clrscr
- finit ; st(0) st(1) st(2)
- fld A ; a
- fld B ; b a
- call showFPUstack
- Cakaj
- fadd
- call showFPUstack
- Cakaj
- fstp Vysledok
- call showFPUstack
- Cakaj
- fld Vysledok
- call showFPUstack
- Cakaj
- exit
- main ENDP
- END main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement