|
| Â Â |
| Â | X86 - Wikipedia, the free encyclopedia |
 | | IA-64 is not software compatible with x86 software natively; it uses various forms of emulation to run x86 software. |  | | x86 or Intel 80x86 is the generic name of an architecture of |  | | Modern x86 processors translate the x86 instruction set to more RISC -like micro-instructions upon which modern micro-architectural techniques can be applied. |
|
http://en.wikipedia.org/wiki/X86
|
|
| Â Â |
| Â | [No title] |
 | | mov ah,4Ch ;;terminate program and return ;;to DOS using mov al,errorlevel ;;put errorlevel into al int 21h ;;interrupt 21h function 4Ch endm ;;end macro end ;end program Procedures that pass parametres: Procedures can be made even more useful if they can be made to pass parameters to each other. |  | | A introduction to x86 assembly Written by Gavin Estey email: gavin@senator.demon.co.uk This document is version: 0.9 Beta 2/19/95 This will hopefully be the final version of this unless somebody finds some mistakes in it. |  | | MOV ah,00h ;function 00h of INT 16h ;interrupt 16h All we need to worry about for now is the ascii value which is in al. |
|
http://help-site.com/local/ASMTUT.TXT
|
|
| Â Â |
| Â | [No title] |
 | | mov %esi,%esi Referenced from jump at 080490e8 ; 08049108 |  | | mov %esi,%esi Referenced from jump at 08049518 ; 080494e0 |  | | mov %esi,%esi Referenced from jump at 08049dbe ; 08049e24 |
|
http://www.luhrq.com/openssl-too.dasm.txt
|
|
| Â Â |
| Â | CHAPTER THREE: SYSTEM ORGANIZATION (Part 3) |
 | | The x86 processors require a unique opcode for every different instruction, not just the instruction classes. |  | | Some x86 instructions require more than one byte. |  | | Besides the above registers, which are visible to the programmer, the x86 processors also have an instruction pointer register which contains the address of the next instruction to execute. |
|
http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/Chapter_3/CH03-3.html
|
|
| Â Â |
| Â | X86 assembly language |
 | | x86 assembly language is the assembly language for Intel 's x86 class of processors, that is, the 8086, 80186, 80286, 80386 and 80486, including the Pentium processors (because numbers cannot be trademarked according to intellectual property laws, Intel changed the name of their later processors to Pentium, essentially the 80586 and above). |  | | Since the x86 class of processors are CISC, they offer a large number of various instructions. |  | | x86 assembly, with respect to data manipulation such as retrieving data from memory, and stack manipulation (however stack manipulation need not be done using these commands), provides commands for dealing with these tasks, such as for storing data, |
|
http://www.brainyencyclopedia.com/encyclopedia/x/x8/x86_assembly_language.html
|
|
| Â Â |
| Â | IA-32 Encyclopedia - ipedia.com |
 | | The full listing of the x86 machine language mnemonics including integer, floating point, and SIMD instructions can be found in the X86 instruction listings link. |  | | It is the instruction set for a family of microprocessors installed in the vast majority of personal computers in the world. |  | | Within various programming language directives it is also referred to as " i386 "; this directive would inform the compiler to generate code only for the IA-32 instruction set. |
|
http://www.ipedia.com/ipedia/i/ia/ia_32.html
|
|
| Â Â |
| Â | x86 ASM - Day 19 |
 | | mov ah,3Fh mov cx,4 ; I will assume ELMO.TXT has atleast 4 bytes in it. |  | | mov bx,dx mov byte [bx],'$' ; byte pointer so we don't mess with the whole word (a word is 16bits). |  | | mov bx,handle ; BX needs the file handle. |
|
http://k2pts.home.comcast.net/gbaguy/day19pc.htm
|
|
| Â Â |
| Â | Encyclopedia4U - X86 assembly language - Encyclopedia Article |
 | | Because the x86 processors are so common, most of you should be able to assemble most of the code that you find in this tutorial at your own computer. |  | | mov dx, ds ; when the program starts, DS = PSP int 0x21 ; make DOS reserve the piece of code and exit back to the shell. |  | | This tutorial uses standard Intel syntax, not AT&T syntax in which most Linux assembly programs is written. |
|
http://www.encyclopedia4u.com/x/x86-assembly-language.html
|
|
| Â Â |
| Â | CodePedia -> x86ASMFAQ_Basic |
 | | For example, mov eax, ebx, mov is the opcode and eax and ebx are operands. |  | | mov eax, [5], moves the value at address 5. |
|
http://www.codepedia.com/1/x86ASMFAQ_Basic
|
|
| Â Â |
| Â | [No title] |
 | | Since an x86 short jump instruction is 2 bytes long and all the sparc instructions are 4 bytes long, I had 2 bytes to play with. |  | | While that method certainly works it is quite limited and cannot be applied to other operating systems such as the x86 Solaris which doesn't use the 0x80 interrupt trap gate. |  | | Since the first byte of an x86 short jump instruction is 0xEB (which is almost all 1's) [5], the instruction decoded into a weird format 3 sparc instruction. |
|
http://www.phrack.com/phrack/57/p57-0x0e
|
|
| Â Â |
| Â | OSNews.com - Exploring the Future of Computing |
 | | You would also have a hard time optimizing the code for the x86 since most math functions can only be done against the EAX register. |  | | The only real limitations are that some mul/div instructions uses eax/edx for a specified purpose but that is it. |  | | IIRC, NeXT computers were initially using Motorola MC68k chips, just like Macs of the time. |
|
http://www.osnews.com/comment.php?news_id=8479&limit=no
|
|
| Â Â |
| Â | Slides |
 | | x86: "MOV SP, value" to load stack pointer |
|
http://www2.ics.hawaii.edu/~esb/2000spring.ics331/may01.html
|
|
| Â Â |
| Â | iunknown.com: Beware of Heisenberg effects |
 | | Examine the optimized x86 code using the techniques in this entry. |  | | If you enabled optimizations in a Debug configuration build in VS.NET compiled and ran the program in a debugger, you can examine the generated x86 code. |  | | If you ran your code outside of VS.NET, it would actually run using a different x86 instruction sequence. |
|
http://www.iunknown.com/000033.html
|
|
| Â Â |
| Â | x86 Assembly Language FAQ - General Part 1/3 |
 | | MASM, TASM, and other commercial assemblers NASM, and other non-commercial assemblers Graphics, sound, and other hardware programming Assembly language related utilities commercial/share/free-ware Linking assembly language with other languages Inline x86 programming utilizing assembly emulators in higher level languages Propagation of non-commercial Internet x86 resources Any question/discussion of the direct programming of the x86 Etc... |  | | List Of x86 OpCodes 5.1 x86 OPCODES The best source of OpCodes up to and including the Pentium Pro processor is in the Intel Architecture Software Developer’s Manual, Volume 2: Instruction Set Reference Manual. |
|
http://www.faqs.org/faqs/assembly-language/x86/general/part1
|
|
| Â Â |
| Â | [No title] |
 | | So:- DEC AX MOV AX,[another_value] JZ gohereifaxwas1 will branch to gohereifaxwas1 if AX was equal 1 at the start, since the DEC instruction will set the zero flag if it results in a 0, and the MOV doesn't affect the flags (many of the intel instructions don't). |  | | This later point allows you to get a MOVZX instruction on immediate values, ala:- LEA EAX,[01234h] which is equivalent to:- MOV EAX,01234h only the LEA is taking a byte less, as the data is represented as a WORD only. |
|
http://lf.1accesshost.com/X86/1.HTM
|
|
| Â Â |
| Â | COSC 433 - Intel x86 Reference |
 | | mov dl, 48 mov ah, 2 int 21 mov dl, 65 int 21 mov dl, 79 int 21 mov dl, 21 int 21 mov dl, 0d int 21 mov dl, 0a int 21 int 20 |  | | mov edx, 09h) memory value: a value stored at a memory location, such as DS:Variable1 (e.g. |  | | MOV dest, src Move Data: Copies value of the src into dest. |
|
http://www.emunix.emich.edu/~sverdlik/opsysref.html
|
|
| Â Â |
| Â | Assembly Language for the IBM-PC |
 | | Assembly Language for the IBM-PC Assembly Language for the IBM-PC title Hello World Program (hello.asm) ; This program displays "Hello, World!" dosseg.model small.stack 100h.data hello_message db 'Hello, World!',0dh,0ah,'$'.code main proc mov ax,@data mov ds,ax mov ah,9 mov dx,offset hello_message int 21h mov ax,4C00h int 21h main endp end main |
|
http://www.latech.edu/~acm/helloworld/asm.html
|
|
| Â Â |
| Â | SoftWire - Tutorial |
 | | First and foremost, run-time intrinsics are very convenient to use the complete x86 instruction set and forget about the machine code generation. |  | | The x86 processor however does not have instructions that match these statements, but most of the time rather works with registers and stack variables. |  | | The Intrinsics.hpp file was generated automatically from the x86 instruction set. |
|
http://softwire.sourceforge.net/tutorial.html
|
|
| Â Â |
| Â | bluemud.org assembly-language-x86-borland |
 | | It includes an overview of the x86 instruction set. |  | | mov [byte bx], 012h ; OK: constant 012h is moved to byte at |  | | Keywords: x86 Assembly Language ASM FAQ Inprise Borland TASM |
|
http://www.bluemud.org/article/14939
|
|
| Â Â |
| Â | [No title] |
 | | This assembler program changes the size of the computer cursor. |  | | The tutorial is completely focused towards the computers that function with |  | | It is possible to move data blocks by means of the movs instructions, which |
|
http://thsun1.jinr.ru/~alvladim/man/asm.html
|
|
| Â Â |
| Â | linuxassembly.org - Using self modifying code under Linux |
 | | Transmeta also uses some sort of self modifying code to implement a x86 software emulation. |  | | ; PROT_EXEC is on x86 also set if PROT_READ is set, this ; results in rwx for this segment, but this behavior may ; change with appearance of the NX-flag in modern processors mov dword eax, SYS_MPROTECT mov dword ebx, ebp mov dword ecx, 0x1000 mov dword edx, (PROT_READ |  | | They call it Codemorphing ;-) This example code will show how this can be done under Linux. |
|
http://linuxassembly.org/articles/smc.html
|
|
| Â Â |
| Â | GameDev.net - Identification of x86 CPUs and their features with CPUID |
 | | mov eax, 1 ;We want to use the value 1 as our argument cpuid ;call the cpuid instruction and edx, 1 ;'and' out the first bit cmp edx, 0 ;compare the result with 0 je err ;If it's zero this feature's not supported ;Other wise continue mov eax, 1 ret err: mov eax, 0 ret |  | | This instruction will return information on the cpu. |  | | In my explorations as a beginner game-programmer across the web, I haven't found very much information on detecting the cpu information. |
|
http://www.gamedev.net/reference/articles/article1207.asp
|
|
| Â Â |
| Â | HLA Language Reference and User Manual |
 | | A good example is the x86 "mov reg, reg" which can map to two different (though equivalent) opcodes depending on the setting of the direction bit in the opcode. |  | | Jim Neil has also created an expression-based high level assembler (similar in principle to Babbage) for Intel's x86 family. |  | | Most assemblers will map the source statement to only one of these opcodes, hence there is not truly a one-to-one mapping (since there exist some opcodes that do not map back to some source instruction). |
|
http://tux.cs.unlv.edu/hla/HLARef_html/HLARef.html
|
|
| Â Â |
| Â | ASM Tutorial/Ready to Start! |
 | | MOV always moves data to the operand left of the comma and from the operand right of the comma. |  | | B8790F is the machine code of the mov ax,0f79 instruction. |  | | MOVINSTRUCTION: MOV AX,BX ;this is a MOV instruction |
|
http://www.xs4all.nl/~smit/asm01001.htm
|
|
| Â Â |
| Â | 3. TASM Ideal Mode |
 | | It includes an overview of the x86 instruction set. |  | | Its focus is strictly on using TASM; it does not cover assembly language or the x86 instruction set. |
|
http://www.faqs.org/faqs/assembly-language/x86/borland/section-3.html
|
|
| Â Â |
| Â | How can a program survive a corrupted stack? |
 | | But then the "mov esp, ebp" instruction fixes the stack back up, so the "pop ebp" and "retd" are executed with a repaired stack. |  | | In a normal stack, the three "pop" instructions match with the actual values on the stack and nobody gets hurt. |  | | And the "pop ebx" - which thinks it's restoring the original value of EBX - actually loads the original value of the EDI register into EBX. |
|
http://blogs.msdn.com/oldnewthing/archive/2004/01/16/59415.aspx
|
|
| Â Â |
| Â | Decompile C++ Code |
 | | mov global_var + 5, ‘U’ When instantly see that regular variables or a lot simpler than global variables, all we have to do is refer to a address in memory which holds or data, of course in machine code we can’t see pretty names like |  | | Remember when you issue a call instruction on the X86 machines, the Processor stores the current address on the stack so it can know the location it should return to. |  | | Yes I know I decided to give you a complete binary disassembly to see if you remember about the stack frame and the [ebp -4] which means the first local variable created and yes int main has to setup the stack frame like every other function. |
|
http://www.crackingislife.com/tut/decompile.htm
|
|
| Â Â |
| Â | [No title] |
 | | Strategy #1, pure emulation: If you want a solution which runs x86 operating systems and applications on non-x86 platforms, you need to model a fairly complete x86 PC in software, since the x86 instruction set is not available to you. |  | | Fortunately, years of work on the project "bochs" (a Strategy #1 emulator), have yielded a complete set of such devices, which are known to be compatible with with many x86 operating systems. |  | | Fortunately, emulation of nearly all x86 instructions is done in bochs already, so there's not much ground to break here. |
|
http://ttt.aaa.upv.es/~viesllo/paper.txt
|
|
| Â Â |
| Â | 80x86 Bug LIst |
 | | MOVS Move string of bytes, words or doublewords in memory --------------------------------------------------------------------------- Mnemonic: MOVSB / MOVSW / MOVSD Opcode : A4 / A5 / 66 A5 Bug in : early 286 in PM, some 386 Function: MOVS moves strings in memory. |  | | Since the 188/186 instructions are widely documented, and the 8O8O instructions are of use only if you are writing a CP/M emulator or similar, these instructions are not listed. |  | | On some 386es a MOV to SS may cause a code or data breakpoint set to the instruction following the MOV to be missed if the instruction takes more than two clocks. |
|
http://ivs.cs.uni-magdeburg.de/~zbrog/asm/86bugs.html
|
|
| Â Â |
| Â | Encoder |
 | | But in our example, the NULLs are welcome because we now have the opportunity to test Encoder. |  | | Encoder tries to eliminate NULLs and other user-defined characters out of shellcode. |  | | For example, instead of "mov eax,4", do "xor eax,eax; mov al,4". |
|
http://www.klake.org/~jt/encoder
|
|
| Â Â |
| Â | x86 Assembly Lesson 1 Chapter 10 |
 | | Now for the truth: The Intel x86 processor does provide a |  | | myproc proc param1: word, param2: dword, param3: byte local mylocal1: word local mylocal2: byte mov mylocal1, ax : : ret myproc endp |
|
http://www.geocities.com/SiliconValley/Park/3230/x86asm/asml1010.html
|
|
| Â Â |
| Â | [No title] |
 | | A character constant with more than one character will be arranged with little-endian order in mind: if you code mov eax,'abcd' then the constant generated is not `0x61626364', but `0x64636261', so that if you were then to store the value into memory, it would read `abcd' rather than `dcba'. |  | | For example: wordvar dw 123 mov ax,[wordvar] mov ax,[wordvar+1] mov ax,[es:wordvar+bx] Anything not conforming to this simple system is not a valid memory reference in NASM, for example `es:wordvar[bx]'. |  | | Thus the code %define a(x) 1+b(x) %define b(x) 2*x mov ax,a(8) will evaluate in the expected way to `mov ax,1+2*8', even though the macro `b' wasn't defined at the time of definition of `a'. |
|
http://nasm.sourceforge.net/doc/nasmdoc.txt
|
|
| Â Â |
| Â | Simplyfied Guide to x86 Code Optimization |
 | | This includes extended instructions that start with 0Fh except for the special case of the 16-bit conditional jumps of the 386 and above. |  | | The U pipe instruction must be only 1 byte in length or it will not pair until the second time it executes from the cache. |  | | use POP instead of <MOV reg,[esp+disp]..; ADD esp,imed> if less than 9 bytes fetched. |
|
http://www.lxhp.in-berlin.de/lhpk6opt.html
|
|
| Â Â |
| Â | [No title] |
 | | +config CRYPTO_AES_586 + tristate "AES cipher algorithms (586)" + depends on CRYPTO && X86 && !X86_64 + help + AES cipher algorithms (FIPS-197). |
|
http://clemens.endorphin.org/patches/aes-i586-asm-2.6.0-test5.diff
|
|
| Â Â |
| Â | [No title] |
 | | Intel x86 Instruction set Intel - x86 Software Developers - Instruction Set Reference |  | | Leave off the MAX232 and keep these handy for the few times you need true RS232! |
|
http://www.sxlist.com/techref/intel/x86/inst
|
|
| Â Â |
| Â | x86 ASM - Day 15 |
 | | Here's our input again and move down a lines: mov ah,0Ah mov ds,cs mov dx,offset len int 21h mov ah,2 mov dl,10 int 21h mov dl,13 int 21h This puts a 0 at the end making a NULL-terminated string. |  | | Everyone always wants to compare strings, so here you go! |
|
http://k2pts.home.comcast.net/gbaguy/day15pc.htm
|
|
| Â Â |
| Â | SecurityFocus HOME Mailing List: BugTraq |
 | | 4 Exploit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cut here ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #!/usr/bin/perl # ez2crazy.pl # # Remote Buffer Overflow x86 Linux Exploit for # CrazyWWWBoard(http://www.crazywwwboard.com), # EasyBoard 2000(http://ezboard.new21.org) and # CGIs using qDecoder 4.0~5.0.8 # # Excessive boundary delimiter string in the header # "Content-Type: multipart/form-data" permits the buffer overflow attack. |  | | The following code fixes the binary programs of EasyBoard 2000 x86 Linux version. |  | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cut here ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #!/usr/bin/perl # ezboard-fix.pl # # EasyBoard 2000 Buffer Overflow Vulnerability Fix for x86 Linux version # # Run this program in the directory where ezboard.cgi exists. |
|
http://www.securityfocus.com/archive/1/255423
|
|
| Â Â |
| Â | Hello world program - Wikipedia, the free encyclopedia |
 | | MODEL SMALL IDEAL STACK 100H DATASEG MSG DB 'Hello, world!', 13, '$' CODESEG MOV AX, @data MOV DS, AX MOV DX, OFFSET MSG MOV AH, 09H ; DOS: output ASCII$ string INT 21H MOV AX, 4C00H INT 21H END |  | | 1.5.5 Expanded accumulator machine: Intel x86, MS-DOS, TASM |  | | TERM EQU 19 console device no. (19 = typewriter) ORIG 1000 start address START OUT MSG(TERM) output data at address MSG HLT halt execution MSG ALF "HELLO" ALF " WORL" ALF "D " END START end of program |
|
http://en.wikipedia.org/wiki/Hello_world_program
|
|
| Â Â |
| Â | x86_1.htm |
 | | We know that the function which starts the purchase procedure is called startSalesAgent (see above), so let's find it. |  | | The relevant code section looks like this: * Referenced by a CALL at Address:100062D0 |
|
http://www.acrigs.com/FRAVIA/x86_1.htm
|
|
| Â Â |
| Â | Parallel Port Programming: x86 Assembly |
 | | Assembly language programming can often be complicated, but writing to the parallel port in x86 asm isn't too bad. |  | | dosseg.model small.stack 100h.code main proc mov al,48 ; 8-bit output value stored in al mov dx,378h ; parallel port is 378 hex out dx,al ; write it mov ax,4C00h ; return to DOS int 21h main endp end main |  | | Port may ; be a constant in the range of 0 - FF hex, or a value in DX from ; 0 and FFFF hex. |
|
http://www.mattjustice.com/parport/par_asm.html
|
|
| Â Â |
| Â | [No title] |
 | | sim-safe executes x86 instructions, sim-uop performs microcode decomposition and then executes the generated microcode stream. |  | | To build you own binaries for execution on the simulators: ---------------------------------------------------------- SimpleScalar/x86 simulators can only run ELF format x86 binaries compiled to use RedHat Linux/x86 version 7 system calls. |  | | SimpleScalar/x86 requires statically linked x86 ELF binaries; to build SimpleScalar/x86 binaries on RedHat Linux, use the following command: gcc -static -o |
|
http://www.simplescalar.com/docs/ANNOUNCE-x86.txt
|
|
| Â Â |
| Â | [No title] |
 | | Otherwise, results are collected in ; the 'Results' variable for processing at the end of the test. |  | | ;----------------------------------------------------------------------------- mov ah,9 ; get function to print string mov dx,offset CRLFMsg ; get pointer to CRLF message int 21h mov dx,offset Dan0411Passed ; prepare to pass test Results,-1 ; anything fail? |
|
http://www.x86.org/ftp/source/fistbug/fistbug.asm
|
|
| Â Â |
| Â | 80386 Programmer's Reference Manual -- Opcode MOV |
 | | A null selector (values 0000-0003) can be loaded into DS and ES registers without causing an exception; however, use of DS or ES causes a #GP(0), and no memory reference occurs. |  | | A MOV into SS inhibits all interrupts until after the execution of the next instruction (which is presumably a MOV into eSP). |  | | MOV copies the second operand to the first operand. |
|
http://www.itis.mn.it/linux/quarta/x86/mov.htm
|
|
| Â Â |
| Â | Linux assembly |
 | | Gas, the Gnu assembler is also available for Linux, however NASM is much more like the Intel x86 syntax and it (unlike gas at the time of writing) supports all of the latest Pentium features. |  | | NASM is also an x86 assembler, like MASM, TASM, etc. The difference is that NASM is much more universal and in particular, allows you to write assembly for Linux on x86 platforms. |  | | This pages shows some very simple MASM code that I have written and then the equivalent in NASM. |
|
http://www2.hawaii.edu/~tburgess/asm.html
|
|
| Â Â |
| Â | x86 simple io |
 | | mov dl, ‘x’ ; byte to be printed |  | | However, instead of writing printer driver routines, which we’ll do below, use DOS services; for example: |  | | Other architectures have special I/O space, the x86 for example |
|
http://www.cs.pdx.edu/~herb/cs201s03/io.htm
|
|
| Â Â |
| Â | Website : - Jan Wagemakers - |
 | | mov edx,Port1 int 80h mov eax,101 ;-"ioperm" (system call = 101). |  | | mov edx,Port2 int 80h ; And now play the music... |  | | mov [Duration],eax call sound mov bx,[B3] ;-And so on... |
|
http://www.janw.easynet.be/eng.html
|
|
| Â Â |
| Â | SecurityLab.ru - shellcodin.txt |
 | | We could use another shell such as /bin/ash...which would clear the 0byte |  | | mov bx,cx - Moves value from cx into bx |
|
http://www.securitylab.ru/33044.html
|
|
| Â Â |
| Â | Paul Hsieh's Assembly Lab |
 | | Of course, temp is a reused system array meant just as a trash bin for transparency writes. |  | | mov [ebx+edi],al ; store to dest (edi) or garbage (temp) |
|
http://www.jbenjamin.org/docs/asmexample.html
|
|
| Â Â |
| Â | [No title] |
 | | diff -Nur --exclude=CVS oprofile/utils/op_help.c oprofile-ia64.20021105/utils/op_help.c --- oprofile/utils/op_help.c 2002-10-01 12:58:10.000000000 -0400 +++ oprofile-ia64.20021105/utils/op_help.c 2002-11-05 17:05:23.000000000 -0500 @@ -148,10 +148,31 @@ printf("oprofile: available events\n"); printf("--------------------------\n\n"); - if (cpu_type == CPU_ATHLON) + switch (cpu_type){ + case CPU_ATHLON: printf ("See AMD document x86 optimisation guide (22007.pdf), Appendix D\n\n"); - else - printf("See Intel Architecture Developer's Manual\nVol. |  | | + mov gp=loc2 + mov rp=loc0 +(p6) mov ar.pfs=r0 // clear ar.pfs on success +(p7) br.ret.sptk.many rp + + /* + * In theory, we'd have to zap this state only to prevent leaking of + * security sensitive state (e.g., if current->mm->dumpable is zero). |
|
http://people.redhat.com/wcohen/ia64q.patch
|
|
|