- •1)Features of the Assembler. The main programs for work with the Assembler.
- •2) Data presentation in the computer. Binary and hexadecimal notations. Bits, bytes and words.
- •3)Main unprivileged commands. Data transfer.
- •4) Ways of addressing.
- •5) Dynamic libraries. Principles of using dynamic libraries.
- •6) Dynamic library structure.
- •7) File systems. Characteristics of files.
- •8) Numbers with a floating comma. Data types of fpu.
- •9) Work with the keyboard. The data buffer bios. Using ms dos function.
- •10) Base arithmetic fpu.
- •11)Comparison commands of fpu
- •12)Transcendental operations of fpu
- •Constants of fpu
- •16. Object modules.
- •17. Directive extern.
- •18) Directives call and invoke.
- •19) Use of libraries. Directive includelib.
- •20) Placement of data in external modules. Translation by tasm means.
- •21) Translation by masm means.
- •22) Directives of memory distribution. Pseudocommands of variable definitions.
- •23. Structures in the assembler
- •24. Program organization. Segments
- •25. Models of memory and the simplified directives of segment definition. Order of loading segments.
- •26. Procedures in the assembler
- •27. Programming bases in the Windows operating system
- •28. Call of the api functions from the program written on the assembler
- •29. Structure of the program written for Windows.
- •30. The general principles of creation of window applications in the Assembler
- •31. Directives of management of the program counter.
- •32. Global declarations.
- •33. Conditional assembling. Expressions
- •34. Attributes of the file. Temporary characteristics. File length.
- •35. File fat32 system. Catalogue structure. Fat table.
- •36. File ntfs system. Principles of construction.
- •37. Attributes of the records mft. Catalogues in ntfs.
- •38. Macrodefinitions. Blocks of repetitions. Macrooperators.
- •39. Management of files. Management of listing. Comments.
- •40) Virtual drivers and virtual Windows engines.
- •41) Modes of the user and kernel.
- •42) Types of Windows drivers.
- •44) Graphic video modes.
- •45) Work with a mouse.
- •46. System timer.
- •47. Services. Dispatcher of management of services.
- •49. Structure of the program which is writing down the driver in the system register.
- •50. Structure of the driver of the kernel mode.
- •1.Features of the Assembler. The main programs for work with the Assembler.
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 computers, communications 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
