X86-int - CompWisdom
About us  |  Why use us?  |  Press  |  Contact us

 

Topic: X86-int



  
 X86-int
INT is an assembly language instruction for x86 processors for generating a software interrupts.
Most Unix systems and derivates do not use software interrupts, although Linux allows programs to use interrupt 0x80 to make system calls.
This is accomplished by entering a 32-bit value corresponding to a kernel function into the EAX register of the processor and then executing INT 0x80.
http://www.freeglossary.com/X86-int

  
 LWN: Patch: Clustered APIC support for x86-64
APIC_DM_NMI; + return icr; +} + +static inline int __prepare_ICR2 (unsigned int mask) +{ + return SET_APIC_DEST_FIELD(mask); +} + +static inline void __send_IPI_shortcut(unsigned int shortcut, int vector, unsigned int dest) +{ + /* + * Subtle.
APIC_DM_NMI; - return icr; -} - -static inline int __prepare_ICR2 (unsigned int mask) -{ - return SET_APIC_DEST_FIELD(mask); -} - -static inline void __send_IPI_shortcut(unsigned int shortcut, int vector) -{ - /* - * Subtle.
http://lwn.net/Articles/101410

  
 ASMTUT.TXT
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.
INT 21h ;Calls DOS standard interrupt 21h INT 10h ;Calls the Video BIOS interrupt All interrupts need a value to specify what subroutine to use.
This is what we do instead: ;after calling function 00h of interrupt 16h MOV dl,al ;move al (ascii code) into dl MOV ah,02h ;function 02h of interrupt 21h INT 21h ;call interrupt 21h If you want to save the value of ah then push it before and pop it afterwards.
http://help-site.com/local/ASMTUT.TXT

  
 linux-2.4.20-cpufreq.patch
- */ -static int __init longrun_init(void) +static int longrun_cpu_init(struct cpufreq_policy *policy) { - int result; - struct cpufreq_driver *driver; + int result = 0; struct cpuinfo_x86 *c = cpu_data; + /* capability check */ + if (policy->cpu != 0) + return -ENODEV; if (c->x86_vendor != X86_VENDOR_TRANSMETA
+ */ +int cpufreq_set(unsigned int freq, unsigned int cpu) +{ + int ret = -EINVAL; + + down(&userspace_sem); + if (!cpu_is_managed[cpu]) + goto err; + + if (freq
!policy) return -EINVAL; policy->cpu = 0; @@ -375,33 +374,71 @@ } /* - * cpufreq_gx_setpolicy: + * cpufreq_gx_target: * */ -static int cpufreq_gx_setpolicy(struct cpufreq_policy *policy) +static int cpufreq_gx_target(struct cpufreq_policy *policy, + unsigned int target_freq, + unsigned int relation) { + u8 tmp1, tmp2; + unsigned int tmp_freq; - if (!gx_driver
http://people.redhat.com/notting/linux-2.4.20-cpufreq.patch

  
 Library (VX heavens)
There has been considerable interest in computer viruses since they first appeared in 1981, and especially in the past few years as they have reached epidemic numbers in many per-sonal computer environments.
In this example this boot-virus can hook INT 40 (dos int) and in the ended of load of virus, it restore a vector table and vector table looks intact.
On the evening of November 2, 1988, a self-replicating program was released upon the Internet (1) This program (a worm) invaded VAX and Sun-3 computers running versions of Berkeley UNIX, and used their resources to attack still more computers (2).
http://vx.netlux.org/lib/

  
 Andrew Pinski - Fwd: c/10719: invalid code generated (x86, "int $5") with __builtin_va_a
Andrew Pinski - Fwd: c/10719: invalid code generated (x86, "int $5") with __builtin_va_a
Fwd: c/10719: invalid code generated (x86, "int $5") with __builtin_va_arg(va, char);
Since it promotes char to int, I believe everything works fine (with warnings, though).
http://gcc.gnu.org/ml/gcc-bugs/2003-05/msg00788.html

  
 Configure
The T90 ints and longs are 8 bytes long, and apparently the # B_ENDIAN code assumes 4 byte ints.
http://cvs.openssl.org/getfile?v=1.19&f=openssl/Configure

  
 Rajkumar Buyya's Home Page
The INT Media's Grid Computing Planet Conference and Expro, San Jose, California, USA, June 17-18, 2002.
Rajuk and Rajkumar Buyya, Microprocessor x86 Programming, 703 pages, ISBN 81-7029-458-4,
Gridbus Technologies for Service-Oriented Cluster and Grid Computing, 2nd IEEE International Conference on Peer-to-Peer Computing (
http://www.buyya.com/cv.html

  
 sb - c/10719: invalid code generated (x86, "int $5") with __builtin_va_arg(va
Subject : c/10719: invalid code generated (x86, "int $5") with __builtin_va_arg(va, char);
c/10719: invalid code generated (x86, "int $5") with __builtin_va_arg(va, char);
(I know, that this is bad code and I should use "int" instead of "char) Extract from disassembly: [...] pushl %ebp movl %esp, %ebp subl $8, %esp leal 12(%ebp), %eax movl %eax, -4(%ebp) int $5 [...] This is obviously plain wrong.
http://gcc.gnu.org/ml/gcc-bugs/2003-05/msg00787.html

  
 extract-mesg.cgi?a=linux-xfs&m=2002-05&i=20020508194853.A1370@wotan.suse.de
*/ @@ -1247,7 +1247,7 @@ dm_get_mountinfo( dm_fsreg_t *fsrp; dm_tokdata_t *tdp; int error; - int lc; /* lock cookie */ + unsigned long lc; /* lock cookie */ /* Make sure that the caller's buffer is 8-byte aligned.
*/ @@ -266,7 +266,7 @@ dm_change_fsys_entry( { dm_fsreg_t *fsrp; int seq_error; - int lc; /* lock cookie */ + unsigned long lc; /* lock cookie */ /* Find the filesystem referenced by the vfsp's fsid_t.
All changes were only interrupt flags int -> long.
http://oss.sgi.com/cgi-bin/extract-mesg.cgi?a=linux-xfs&m=2002-05&i=20020508194853.A1370@wotan.suse.de

  
 ExoticA! *** Formats/Replays Page *** ExoticA!
Emmanuel Marty (core@suntech.fr): Thanks to release the code source of your StoneTracker x86 DOS/GUS player, and a free full version of StoneTracker 1.26 on Aminet.
Musics are created within the source file, with dc.b.
Heikki Orsila and Michael Doering for Unix Amiga Delitracker Emulator : almost portable emulation of the 68k (UAE based) and the Delitracker API as a XMMS plug-in !
http://exotica.fix.no/tunes/formats/

  
 Admins-Web-Portal
Memtest86 is thorough, stand alone memory test for x86 architecture computers.
BIOS based memory tests are only a quick check and often miss many of the failures that are detected by Memtest86.
http://www.admins-web.de/

  
 7350wurm_c.htm
= bufsize) return (-2); /* buffer full */ } while (1); } int net_rtimeout (int fd, int sec) { fd_set rset; struct timeval tv; int n, error, flags; error = 0; flags = fcntl(fd, F_GETFL, 0); n = fcntl(fd, F_SETFL, flags
*/ void xp_buildsize (int fd, unsigned char this_size_ls, unsigned long int csize) { int n, cw; /* chunk walker */ unsigned char tmpbuf[512]; unsigned char * leet = "7350"; for (n = 2 ; n > 0 ; --n) { memset (tmpbuf, '\0', sizeof (tmpbuf)); for (cw = 0 ; cw
0) close (ftpsock); return (0); } /* ripped from zodiac */ void hexdump (char *desc, unsigned char *data, unsigned int amount) { unsigned int dp, p; /* data pointer */ const char trans[] = "................................
http://www.geocities.com/f173s/7350wurm_c.htm

  
 processor.h
static inline void cpuid ( int op, int *eax, int *ebx, int *ecx, int *edx)
static inline unsigned int cpuid_ebx ( unsigned int op)
static inline unsigned int cpuid_eax ( unsigned int op)
http://www2.randomlogic.com/linux_html/71265.html

  
 Surf Sites
Intel x86 PC emulator (open, but not GPLed) [bwb]
Pretty good, open source ray tracer for building realistic scenes
http://www.course.molina.com.br/Project/surfsite.htm

  
 split-combine-2.5.6.diff
+ */ + +extern void vide(void); +__asm__(".align 4\nvide: ret"); + +static void __init init_amd(struct cpuinfo_x86 *c) +{ + u32 l, h; + int mbytes = max_mapnr >> (20-PAGE_SHIFT); + int r; + + /* + * FIXME: We should handle the K5 here.
+ */ +static int show_cpuinfo(struct seq_file *m, void *v) +{ + /* + * These flag bits must match the definitions in.
x86 > 6 && dl) { + /* P4 family */ + /* L3 cache */ + cs = 128
http://www.hansenpartnership.com/voyager/files/split-combine-2.5.6.diff

  
 LWN: Patch: compatibility syscall layer - X86_64
!out) - return error; - if (put_it32(out, andkout)) - return -EFAULT; - - return 0; - -} asmlinkage unsigned long sys32_alarm(unsigned int seconds) { @@ -616,45 +541,11 @@ /* Translations due to time_t size differences.
http://lwn.net/Articles/17158

  
 patch-xmach-cpu1
@@ -89,9 +90,8 @@ /* XXX interrupt stack pointer and highwater mark, for locore.S. vm_offset_t int_stack_top, int_stack_high; -/* CPUID Stuff */ -extern int _cpu_info; -void identifycpu(); +/* CPU identification */ +cpu_info_t cpu_info; /* * Find devices.
- -unsigned long i586_ctr_freq; - -extern int _cpu_info, _cpu_id, _cpu_feature; -extern char _cpu_vendor[]; +#include
http://function.linuxpower.ca/patches/patch-xmach-cpu1

  
 ASMTUT.TXT
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,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.
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

  
 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 dest, src Move Data: Copies value of the src into dest.
mov eax, [0100] ; Direct Addresssing mov eax, [0299] ; Indirect Addressing mov eax, 0100 ; Place value 0100 into eax
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

  
 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

  
 ASM Tutorial/Ready to Start!
.model small.stack.data message db "Hello world, I'm learning Assembly !!!", "$".code main proc mov ax,seg message mov ds,ax mov ah,09 lea dx,message int 21h mov ax,4c00h int 21h main endp end main
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.
http://www.xs4all.nl/~smit/asm01001.htm

  
 x86 ASM - Day 19
mov bx,dx mov byte [bx],'$' ; byte pointer so we don't mess with the whole word (a word is 16bits).
mov ah,4Ch int 21h ; Function 4Ch (Exit Program) It looks like a lot like that, but don't forget that you can make your own subroutines and CALL them.
mov ah,3Fh mov cx,4 ; I will assume ELMO.TXT has atleast 4 bytes in it.
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

  
 1.HTM
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.
MOV AX,0 lop: MOV FS,AX MOV AH,2 MOV DL,030h INT 021h MOV AX,FS INC AL JNO lop Okay so you've run out of registers in that inner loop.
http://lf.1accesshost.com/X86/1.HTM

  
 Hello world program - Wikipedia, the free encyclopedia
1.5.5 Expanded accumulator machine: Intel x86, MS-DOS, TASM
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
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

  
 Decompile C++ Code
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.
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
http://www.crackingislife.com/tut/decompile.htm

  
 x86 Assembly Lesson 1 Chapter 10
Now for the truth: The Intel x86 processor does provide a
So, the only thing we'd pass here is the word pointer that will go to DX.
ideal p286n model tiny codeseg org 100h jmp start ; your data here ; Area 1 start: mov ax, 4c00h int 21h ; Area 2 end
http://www.geocities.com/SiliconValley/Park/3230/x86asm/asml1010.html

  
 Using the GNU Compiler Collection (GCC)
The 64-bit environment sets int to 32 bits and long and pointer to 64 bits and generates code for AMD's x86-64 architecture.
-Os), in which case the default is the minimum correct alignment (4 bytes for x86, and 8 bytes for x86-64).
See X86 Built-in Functions, for details of the functions enabled and disabled by these switches.
http://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/i386-and-x86-64-Options.html   (1431 words)

Compwisdom
 About us   |  Why use us?   |  Press   |  Contact us

 Copyright © 2006 CompWisdom.com Usage implies agreement with terms.