Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
system prog new.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
275.7 Кб
Скачать

10) Base arithmetic fpu.

Command: FADD receiver, source

Purpose: Addition of real numbers

Command: FADDP receiver, source

Purpose: Addition with pulling from the stack

Command: FIADD source

Purpose: Addition of integer numbers

Command: FSUB receiver, source

Purpose: Subtraction of real numbers

Command: FSUBP receiver, source

Purpose: Subtraction with pulling from the stack

Command: FISUB source

Purpose: Subtraction of integer numbers

Command: FMUL receiver, source

Purpose: Multiplication of real numbers

Command: FMULP receiver, source

Purpose: Multiplication with pulling form the stack

Command: FIMUL source

Purpose: Multiplication of integer numbers

Command: FDIV receiver, source

Purpose: Division of real numbers

Command: FDIVP receiver, source

Purpose: Division with pulling from the stack

Command: FIDIV source

Purpose: Division of integer numbers

Command: FABS

Purpose: Find absolute value

Command: FCHS

Purpose: Change a sign

11)Comparison commands of fpu

Command: FCOM source

Purpose: Compare real numbers

Command: FCOMP source

Purpose: Compare and pull from the stack

Command: FUCOM source

Purpose: Compare real numbers without degrees

Command: FUCOMP source

Purpose: Compare without degrees and pull from the stack

Command: FICOM source

Purpose: Compare integer numbers

Command: FICOMP source

Purpose: Compare integer numbers and pull from the stack

Command: FTST

Purpose: Check, whether ST(0) contains zero

Command: FXAM

Purpose: Analyze content of ST(0)

12)Transcendental operations of fpu

Command: FSIN Purpose: Sine

Command: FCOS Purpose: Cosine

Command: FSINCOS Purpose: Sine and cosine

Command: FPTAN Purpose: Tangent

Command: FPATAN Purpose: Arctangent

Command: F2XMI Purpose: Calculating 2^x - 1

Command: FYL2X Purpose: Calculating y*log2(x)

Command: FYL2XP1 Purpose: Calculating y*log2(x + 1)

Constants of fpu

Command: FLD1

Purpose: Push 1.0 onto the stack

Command: FLDZ

Purpose: Push +0.0 onto the stack

Command: FLDPI

Purpose: Push PI number onto the stack

Command: FLDL2E

Purpose: Push log2(e) onto the stack

Command: FLDL2T

Purpose: Push log2(10) onto the stack

Command: FLDLN2

Purpose: Push ln(2) onto the stack

Command: FLDLG2

Purpose: Push lg(2) onto the stack

13. Management commands of FPU. Command : FINCSTP Purpose: Increase the stack pointer -TOR field FPU status register is incremented by 1. If the top is equal to seven, it is reset. This command is not equivalent to the expulsion of ST (0) from the stack, because the data register, called ST (0) and became ST (7) is not marked as empty. Command: FDECSTP Purpose: Reduce the stack pointer -TOR field FPU status register is decremented by 1. If the top is zero, it is set to 7. The contents of data registers and TW is not changed. Command: FFREE operand Purpose: To release the data register-The command notes in the register TW, that operand (data register ST (n)) - empty. The contents of the register and TOP are not changed. command: FINIT Purpose: Initialize FPU command: FNINIT Purpose: Initialize FPU without waiting –commands FINIT FNINIT and restore the default values ​​in registers CR, SR, TW, and beginning with 80387 - FIP and FDP control register is initialized to 037Fh (rounded to the nearest 64-bit precision, all exceptions are masked). The status register is reset to zero (TOP = 0, no flags are not set exceptions). Data register is not modified, but they are marked in the register empty TW. FIP, and FDP registers are reset. Command FINIT, unlike FNINIT, checks and unhandled exception occurred and processes them before initialization. Team FINIT completely equivalent to (and actually is) WAIT FNINIT. command: FCLEX Purpose: Reset exception flags command: FNCLEX Purpose: Reset exception flags without delay - Commands zeroed exception flags (PE, UE, OF, ZE, DE, IE), and flags ES, SF and a status register in FPU. Command FCLEX, unlike FNCLEX, checks and unhandled exception occurred and processes them before execution. Team FCLEX completely equivalent to (and actually is) WAIT FNCLEX. command: FSTCW receiver Purpose: Save CR register command: FNSTCW receiver Purpose: Save CR register without delay-Commands copy the contents of the CR to the receiver (16-bit variable). Command FSTCW, unlike FNSTCW, checks and unhandled exception occurred and processes them before execution. Team FSTCW completely equivalent to (and actually is) WAIT FNSTCW. command: FLDCW source Purpose: Download the CR register -Copies the contents of the source (16-bit variable) in the register CR. If one or more of the exceptions set of flags in the SR register and disguised in CR, and the team FLDCW these masks are removed, an exception will be processed before the next instruction FPU (except for commands without waiting). To prevent this from happening, usually before FLDCW execute command FCLEX. command: FSTENV receiver Purpose: Save auxiliary registers command: FNSTENV receiver Purpose: Save auxiliary registers without waiting -Saves all the supporting FPU registers in the receiver (14 or 28 bytes in memory, depending on the length of operands), and masks all exceptions. Saves the contents of the registers CR, SR, TW, FIP, FDP and the last command in a format that depends on the current length of operands and addresses (7 double words for 32-bit operands and 7 words for the 16-bit operands). The first word (or the lower half of the first double word in the 32-bit case) always contains the CR, the second word - SR, the third word - TW, fourth - FIP. Using the last three words varies depending on the current bit addressing and operands. command: FLDENV source Purpose: Download the auxiliary registers-This command loads the auxiliary registers all FPU (registers CR, SR, TW, FIP, FDP) from the source (memory area 14 or 28 bytes, depending on the bit operands) previously stored command FSTENV / FNSTENV. If the downloadable SW installed a few (or one) flag exceptions that are not masked by the flags of both CR, these exceptions will be made before the next command FPU (except for commands without waiting).

Command: FSAVE receiver Purpose: Save FPU state Command: FNSAVE receiver Purpose: Save FPU state without waiting-Saves the state of the FPU (data registers and auxiliary registers) to the receiver (the memory size of 94 or 108 bytes, depending on the length of operands), and initializes the FPU similarly commands FINIT / FNINIT. Command FSAVE, unlike FNSAVE, checks and unhandled exception occurred and processes them before execution. Team FSAVE completely equivalent to (and actually is) WAIT FNSAVE. This command is typically used by the operating system when switching tasks or programs that need to transmit procedure is called to clean FPU.

14. ASCII symbols and scan codes. The American Standard Code for Information Interchange- is a character-encoding scheme originally based on the English alphabet. ASCII codes represent text in computerscommunications equipment, and other devices that use text. Most modern character-encoding schemes are based on ASCII, though they support many additional characters.This table shows to us ASCII symbols in beginner order:

Code Name Ctrl-code assignment Code Name Ctrl-code assignment

00 NUL ^ @ Empty (end of line) 01 SOH ^ A Start of Header

02 STX ^ B Start of Text 03 EOT ^ C End of Text

04 ENQ ^ D End of transmission 06 ACK ^ F Confirmation

07 BEL ^ G Bell 08 BS ^ H Step Back

09 HT ^ I Horizontal tab 0A LF ^ J Line Feed

0B VT ^ K Vertical Tab 0C FF ^ L Translations page

0D CR ^ M Carriage Return 0E SO ^ N Pull

0F SI ^ O Move

Here we can see the scan codes of ASCII.there we can see how we can enter the scan codes with help of keyboard:

15. Translation of programs. Directive INCLUDE.

The process of translating the program in assembly language into object code is called as assembling. In contrast to the compile, assemble - a more or less definite and reversible process. In each assembly language mnemonics corresponds to one machine instruction, while in high level programming languages ​​for each expression may be hiding a lot of different instructions. In principle, this division is rather arbitrary, so sometimes broadcast assembler programs are also called compilation. Directives are commands compiler. Announcement of each of them should begin with a period. INCLUDE filename - Directive are inserted in the text of the program text file similar to the team preprocessor C # include. Often used to include files containing constant definitions, structures, and macros. INCLUDELIB filename - directive, indicating the name of the linker additional library or object file that will be required in the preparation of the program. For example, if we use a procedure or treatment to the data defined in other modules. Use of this directive can not specify the names of additional libraries when invoking the linker. INCLUDE directive Loads another source file during assembly. This allows us to insert an additional source file into your code during assembly. Included source files usually contain common routines or data. By using an INCLUDE directive at the beginning of our program, we can avoid re-typing common information. Included files may not contain other included files. Directive. Include. Means an investment of another file (the contents of a file included in the program at compile time). Having met . Include compiler opens the specified file in the directive, compiles it to the end (ie, translates into machine code) or to the directive. EXIT. Then continues the compilation of the initial file with the line following the directive include. The attached file may also contain a directive to include.

Example:

, The file iodefs.asm

. EQU sreq = 0 × 3F

. EQU sphigh = 0 × 3e

. EQU splow = 0 × 3d

, The file incdemo.asm

. include iodefs.asm

in ro, sreg

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]