-
صدای کنترتنور
جمعه 12 دیماه سال 1404 12:13
به نام خدا آدرس جدید پست براساس شماره ترتیبی : https://vahidmy.blog.ir/post/227 عنوان انگلیسی پست : countertenor عنوان فارسی پست : صدای کنترتنور : کاربران گرامی . سلام . این پست بعنوان زنگ تفریح و برای رفع خستگی منتشر می شود . هم رفع خستگی از خودم و هم از شما . برای اینکه در لابلای دهها پست تخصصی و دشوار زبان اسمبلی...
-
The GUIDs Tool
چهارشنبه 10 دیماه سال 1404 02:52
The GUIDs Tool If you have one (or several) *.GUD File(s) in your RosASmFiles Folder, the [SideKick] Menu will show you a [GUIDs] Option for copying these materials into the ClipBoard, or for pasting them directly into your Source (Double-Click selection available). This Menu Option is activated after you have loaded...
-
Help Files
چهارشنبه 10 دیماه سال 1404 02:52
Help Files . In [Configuration] / [Help Files], you may set the Path to the most used Programming Help FIles. You should find these Files easily on the Web, with a Search Engine. In case you would fail to find out some of them, I have uploaded the ones I use, at my RosAsm Site. You can download them by these direct...
-
Optimizing Code with MMX
چهارشنبه 10 دیماه سال 1404 02:51
Optimizing Code with MMX(TM) Technology Optimizing Code with MMX(TM) Technology Mike Schmitmschmit@zoran.com mschmit@ix.netcom.com Author This article was written by Mike Schmit for the 1997 CGDC. Mike has been developing tools for optimizing x86 code in assembly language for over 10 years. At the time the article was...
-
FPU_Examples
چهارشنبه 10 دیماه سال 1404 02:50
FPU_Examples .. Loading on and retrieving from the FPU Stack When you load a value it is pushed onto the Top of Stack (TOS). This is to say that ST0 holds the new value and all other records are moved one step down. [MyFloat: F§ 12.34] [ MyInterger: 82] fld F§MyFloat ; Load Float (mem > tos) ST0 = 12.34 fild...
-
The FPU Status Register
چهارشنبه 10 دیماه سال 1404 02:50
The FPU Status Register ... The FPU status register is 16 Bits wide. It indicates the current state of the FPU, and can be read (stored into Memory) by the Instruction FSTSW, mainly, and also by FNSTSW, FSTENV, FNSTENV, FSAVE, FNSAVE, and FXSAVE. It can also be stored in the AX register of the integer unit, by using...
-
The FPU Control Register
چهارشنبه 10 دیماه سال 1404 02:49
The FPU Control Register .. The FPU control register is 16 bits long. It defines the behavior of the FPU (mainly, at a practical point of view, for the rounding Mode): Rounding Precision Exception Control Control Masks 15 11 10 9 8 5 4 3 2 1 0 __| __| __| __| __| __| __| __| __| __| __| __| __| __| __| __| _______...
-
FPU_Register
چهارشنبه 10 دیماه سال 1404 02:48
FPU_Register ... From the programmers point of view, the FPU may read and write various Formats from and to an FPU Register. But, internally, a FPU Stack Register is always 80 Bits Extended Real: 79 64 0 __| ____________________| ____________________________________________________ ST0 ST0 Register of the Floating...
-
FPU_Stack
چهارشنبه 10 دیماه سال 1404 02:47
FPU_Stack .. The FPU Instructions work with a stack of 8 registers: ST0 to ST7: ---------------------------- (TOS -Top Of Stack-) ---------------------------------------- 79 64 0 __| ____________________| ____________________________________________________ ST0 __| ____________________|...
-
FPU Data Types
چهارشنبه 10 دیماه سال 1404 02:46
FPU Data Types .. The FPU_Stack Registers are all, and always, 80 Bits wide, and all data, in an FPU Register is always an 80 Bits Extended Precision Number. Nevertheless the FPU can read and write various other Formats, from and to Memory. These Memory Data may be either Reals or 16 Bits, 32 Bits, 64 Bits Integers,...
-
Integer Math Instructions
چهارشنبه 10 دیماه سال 1404 02:45
Integer Math Instructions .. Add Adds Source to Destination: mov eax 100 add eax eax ; eax = 200 (Flags set on if overflow) Sub Subtracts Source from Destination: mov eax 100 sub eax 10 ; eax = 90 (Flags set on if overflow) Inc mov eax 12 inc eax ; eax = 13 Dec mov eax 12 dec eax ; eax = 11 Mul Multiplies eax by the...
-
Shifting and Rolling
چهارشنبه 10 دیماه سال 1404 02:45
Shifting and Rolling .. Shifting and Rolling are the acts of moving all the Bits of a Byte / Word / dWord to the right or to the left. Rolling recovers the 'pushed out' bits and reintroduces them at the opposite side. Sal / Shl (Shift Arithmetic Left / Shift Logical Left) 7 < 6 < 5 < 4 < 3 < 2 <...
-
Logical Instructions
چهارشنبه 10 دیماه سال 1404 02:44
Logical Instructions .. The simpler way to understand the Logical Instructions is to think of them in Binary format. and, or, xor, not, test, as they only apply on Bits. And 0 and 0 > 0 0 and 1 > 0 1 and 0 > 0 1 and 1 > 1 The result is 1 only when both bits are 1 Example, we have a Char in AL. This Char is...
-
Moving_Flags
چهارشنبه 10 دیماه سال 1404 02:43
Moving_Flags .. See the Flags Register in Flags_and_Jcc. See how Conditional Jumps are affected by the Flags in Jumping. The main Flags management is done by the processor itself when running Instructions. You can't modify the Flags Register directly. For this you have to use two instructions: Pushf / Popf pushf pop...
-
Moving_Data
چهارشنبه 10 دیماه سال 1404 02:42
Moving_Data .. Mov Move_to Destination, Source: mov ebx 1 ; ebx = 1 mov eax ebx ; eax = 1 [Data: 24] mov esi Data ; esi = Whatever Memory Address where ''Data'' is stored mov eax D$esi ; eax = 24 [BytesData: B$ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] mov al B$BytesData+4 ; al = 4 [dWordsData: D$ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]...
-
String_Instructions
چهارشنبه 10 دیماه سال 1404 02:41
String_Instructions .. String instructions do not exclusively apply only to string Data types, but are called so, because they often do. Strings REPetition instructions are known for being slow under Intel Processors. Usually programmers tend to optimize their Coding by replacing them by other, not so slow,...
-
Tables
چهارشنبه 10 دیماه سال 1404 02:41
Tables . Introduction Tables are flows of organized Data. For example, you may have a String (which is a Table of Bytes), a Table of Strings, a Table of Pointers to Code, and so on. Tables may have any number of Dimensions [1 to n], for example, a Table of a visual object might have as well five dimensions (X / Y /...
-
Aligning Data
چهارشنبه 10 دیماه سال 1404 02:40
Aligning Data ... When an Instruction accesses a Memory location, for reading or for writing, if the targeted data is not aligned, in Memory, on its own Boundary, the Processor performs two Memory accesses instead of one. To prevent this penalty, you have to take care of always aligning your data on their own...
-
Unions
چهارشنبه 10 دیماه سال 1404 02:39
Unions . The Union concept is nothing but providing several Names (Data Addresses Symbolics) for the same Address. Programmers with some previous HLL experience are often times a bit lost with not having a concept like HLLs Unions in Assembly. In fact, we do have it, for free: [DwordData: WordData1: ByteData1: B$ ?...
-
Strings in Assembly
چهارشنبه 10 دیماه سال 1404 02:39
Strings in Assembly .. Under modern OSes, Strings come in two flavors : Bytes Flows and Words Flows. I will describe only the Bytes Strings form here. The same rules apply, of course to the Words Strings form. The Bytes Strings are known as ASCII Strings and the Words Strings as Unicode Strings. Many Api Functions...
-
Integers in x86 Assembly
چهارشنبه 10 دیماه سال 1404 02:38
Integers in x86 Assembly .. The Integer Sizes The very first thing a beginner has to learn about Assembly Language is that no operation can be done without knowing and taking care of the size(s), with anything, and particularily not with Numbers. As described in X86_Basics, the main Sizes are the Byte, the Word, the...
-
Numbers
چهارشنبه 10 دیماه سال 1404 02:37
Numbers .. Decimal Numbers As several Base notations are used in programming, let us start with a review of what the Base is for Decimal Numbers. When we say that, in Decimal notation, the base is 10, we mean that the computation of a Number is based upon powers of 10, and that each Digit represents a value from 0 to...
-
Addressing
چهارشنبه 10 دیماه سال 1404 02:37
Addressing .. Addressing is the act of specifying a memory location (Address) for reading from or for writing to. Immediate Addressing This is simply writing a given value into a Register or in Memory. Examples: mov edi , 040301C Under modern OSes, this way for Addressing is not used, as the actual Addresses of a...
-
Jumping
چهارشنبه 10 دیماه سال 1404 02:36
Jumping .. Jumps can be either short or long. Long jumps are coded on dWord and short jumps are coded on Bytes. As jumps can be either up or down (forward / backward), they are stored as signed values. A short jump can therefore only be 127 octets down or 128 octets up. A jump can be either direct or indirect. Direct...
-
Flags and Conditional Jumps
چهارشنبه 10 دیماه سال 1404 02:35
Flags and Conditional Jumps .. The Flags Register The Flags Register is a particular Register that indicates the different states of CPU. Meaningful bits of this register are: __| __| __| __| OF| DF| IF| TF| SF| ZF| __| AF| __| PF| __| CF| where the meaning of set bits are: OF > Overflow of math integer operation...
-
The Stack
چهارشنبه 10 دیماه سال 1404 02:34
The Stack .. The Stack is a Memory area pointed to by the ESP Register (Stack Pointer). In the early DOS times, the .com Files Format, for executables, was limited to 65,536 Bytes. This tiny room had to be used all at once, for Code, Data and Stack, so that, saving room, inside the executables was a high priority....
-
Registers
چهارشنبه 10 دیماه سال 1404 02:33
Registers .. The CPU Registers may be represented as small Memory units directly located on the CPU. From this point of view, they are faster Memories than the real physical Memory. Also, several CPU Instructions make use of pre-defined Registers. In Win32 Assembly Applications programing, the commonly used Registers...
-
X86_Basics
چهارشنبه 10 دیماه سال 1404 02:33
X86_Basics .. The Memory X86 Assembly is a very simple and Flat Language. If you are used to Types, with some HLL Compiler, you will have to adapt to the fact that, in Assembly, the only corresponding concept is the one of the various available Sizes, as well for Memory accesses as for Registers. The Basic Sizes of...
-
Strategy Optimization
چهارشنبه 10 دیماه سال 1404 02:32
Strategy Optimization .. Size_Optimization and Speed_Optimization should be rejected from the Asm32 programming area. They are ridiculous, of no use in most cases, and hardly kill Readability, which is the most important thing to be preserved, in programming. The superiority of Assembly over any HLL does not rely on...
-
Size Optimization
چهارشنبه 10 دیماه سال 1404 02:31
Size Optimization (DeVilMan) . Intro In this tutorial we will see how to optimize code in size, making it smaller to fit your needs. These kinds of optimizations are often used by virusers and crackers that need to write routines as small as possible to be put into really small caves. Anyway these tricks can be...