Hi,
I've found an emulator for 80x86 created by using Java,
and I want know, how I can create an emulator 80x86 by Java?
where I can found tutorials and documentation?
etc ...
Thanks very much!
Title says it all.
The error NASM gives (dispite my working OS) is "invalid effective address".
Now i've seen many examples of how to use LEA and i think i gots it right but yet my NASM dislikes it. I tried "lea cx, [cx+9]" and it worked; "lea cx, [bx+cx]" didn't.
Now if i extended my registers to 32-bits (i.e. "lea ecx, [ecx*8+ecx]") everything would be well but i am restricted to use 16- and 8-bit registers only.
Is here anyone so knoweledgeable who could explain me WHY my assembler doesn't let me use lea the way i supposed it should be used?
Thanks.
I would like to learn the x86 Instruction Set Architecture. I don't meaning learning an assembly for x86. I want to understand the machine code baby.
The reason is that I would like to write an assembler for x86. Then I want to write a compiler that compiles to that assembly.
I know that there are the Intel manuals and AMD manuals that cover the x86 instruction set. But those are very large and dense.
I'm wondering if there is a more approachable (possibly tutorial) approach to learning the x86 instruction set architecture.
Hello, I'm studying ASM 8086 theoretically on highschool. (that means that I study ASM 8086 on a notebook, and never got to run it over a computer).
And I don't understand - what will happen if I do this:
MOV AL, F2h
ADD AL, 20h
What will the computer do? (what will be the value of AL,AX, CF,ZF?)
and what will happen if I do this:
MOV AH,F2h
ADD AH,20h
Thank you !!
The following code compiles fine on Linux using gcc -std=c99 but gets the following errors on the Visual Studio 2010 C compiler:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
fib.c
fib.c(42) : error C2057: expected constant expression
fib.c(42) : error C2466: cannot allocate an array of constant size 0
fib.c(42) : error C2133: 'num' : unknown size
The user inputs the amount of Fibonacci numbers to generate. I'm curious as to why the Microsoft compiler doesn't like this code.
http://pastebin.com/z0uEa2zw
I'm a complete beginner at Assembly, and my aim is to learn as much as I can to do with Assembly to one day I can reach expert level (I know I'm way off right now, but you never know). My only problem is this: I've got two books which both teach assembly, one on a Linux and the other on Windows. They are Jeff Duntemann's Assembly Language Step By Step (the linux one) and Introduction to 80x86 Assembly Language and Computer Architecture (the windows version). If I want to get the best out of assembly, should I do this on linux and windows? Also, is the syntax the same on Windows and Linux or will I have teach my self again when learning on the other OS( which is my main concern, I want to be able to use assembly on windows and linux).
I'm attempting to target VC7.1 (visual studio 2003 sp1) from Visual Studio 2010.
I'm so close to setting it to work. But when I build, I get this error.
1------ Build started: Project: AnExample, Configuration: Release Win32 ------
1 Microsoft (R) 32-bit C/C++ Standard Compiler Version 13.10.6030 for 80x86
1 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
1
1 cl ÿ_/
1
1cl : Command line warning D4024: unrecognized source file type 'ÿ_/', object file assumed
1 Microsoft (R) Incremental Linker Version 7.10.6030
1 Copyright (C) Microsoft Corporation. All rights reserved.
1
1 /out:.exe
1 ¦/
1LINK : fatal error LNK1181: cannot open input file ' ¦/.obj'
I know this is unsupported but I thought I'd give it a go.
Does anyone know how to force the output from msbuild to be ascii or if this is the problem? There were some errors like this years ago related to the DDK acorrding to some other forums.
Thanks.
For the C++ code fragment below:
class Foo {
int a[]; // no error
};
int a[]; // error: storage size of 'a' isn't known
void bar() {
int a[]; // error: storage size of 'a' isn't known
}
why isn't the member variable causing an error too? and what is the meaning of this member variable?
I'm using gcc version 3.4.5 (mingw-vista special) through CodeBlocks 8.02.
On Visual Studio Express 2008 - Microsoft(R) C/C++ Optimizing Compiler 15.00.30729.01 for 80x86, I got the following messages:
class Foo {
int a[]; // warning C4200: nonstandard extension used : zero-sized array in struct/union - Cannot generate copy-ctor or copy-assignment operator when UDT contains a zero-sized array
};
int a[];
void bar() {
int a[]; // error C2133: 'a' : unknown size
}
Now, this needs some explaination too.
In this maximally clipped source example, the manifest constant FOOBAR is being redefined. This is deliberate, and there is extra code in the live case to make use of each definition.
The pragma was added to get rid of a warning message, but then a note appeared, and I don't seem to find a way to get rid of the note.
I've been able to modify this particular source to #undef between the #define, but I would like to know if there's a way to inhibit the note without requiring #undef, since there are multiple constants being handled the same way.
#pragma warning( disable : 4005 ) // 'identifier' : macro redefinition
#define FOOBAR FOO
#define FOOBAR BAR
The compiler banner and output are as follows
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
message.c
message.c(3) : note C6311: message.c(2) : see previous definition of 'FOOBAR'
I was looking a snipset of code:
int* ip;
ip = new int[100];
delete ip;
The example above states that: "This code will work with many compilers, but it should instead read:"
int* ip;
ip = new int[100];
delete [] ip;
Is this indeed the case? I use the compiler "Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86" and does not complain (first example) while compiling. At runtime the pointer is set to NULL.
Other compilers behave diferrently? Can a compiler not compain and issues can appear at runtime?
Thanks,
Sun
Is there a way to stop MSYS/MinGW from transforming what it thinks are paths on my command lines? I have a project that's using nmake & Microsoft Visual Studio 2003 (yeecccch). I have the build system all ported and ready to go for GNU make (and tested with Cygwin). Something weird is happening to my compiler flags when I try to compile in an MSYS environment, though. Here's a simplified example:
$ cl /nologo
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
/out:nologo.exe
C:/msys/1.0/nologo
LINK : fatal error LNK1181: cannot open input file 'C:/msys/1.0/nologo.obj'
As you can see, MSYS is transforming the /nologo compiler switch into a windows path, and then sending that to the compiler. I really don't want this to happen - in fact I'd be happy if MSYS never transformed any paths - my build system had to take care of all that when I first ported to Cygwin. Is there a way to make that happen?
It does work to change the command to
$ cl -nologo
Which produces the expected results, but this build system is very large and very painful to update. I really don't want to have to go in and change every use of a / for a flag to a -. In particular, there may be tools that don't support the use of the - at all, and then I'll really be stuck.
Thanks for any suggestions!
OS Windows Vista Ultimate
trying to run a program called minimal.c when i type at command line
C:\Users\nathan\Desktopcl minimal.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
minimal.c
minimal.c(5) : fatal error C1034: windows.h: no include path set
i have set all the paths:
C:\Users\nathan\Desktoppath
PATH=C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin;C:\Windows\system3
;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\ATI Technologies\AT
.ACE\Core-Static;C:\Program Files\Intel\DMIX;c:\Program Files (x86)\Microsoft S
L Server\100\Tools\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Bi
n\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\Java\jdk1.
.0_13\bin;C:\Program Files (x86)\Autodesk\Backburner\;C:\Program Files (x86)\Co
mon Files\Autodesk Shared\;C:\Program Files (x86)\Microsoft DirectX SDK (March
009)\Include;C:\Users\nathan\Desktop\glut-3.7.6-bin\glut-3.7.6-bin;C:\Program F
les (x86)\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files (x86)\Microsof
Visual Studio 8\VC\PlatformSDK\Include;C:\Program Files (x86)\Microsoft Visual
Studio 8\VC\PlatformSDK\Include\gl
i have gone and made sure windows.h is in the directory im setting the path too. its
in C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\Include.
i have visual studio 2005
i have exhausted all possiblies any ideas
I'm trying to set up a test environment with Maven to build VC++ and I am way behind on this.
I have 3 source files that I builds a dll (once I get this fixed it should be a simple matter to add the unit-tests):
hook.cpp
hook.h
hook.def
This is compiled, on the command line, with the following:
C:\Develop\hook\src\main\msvc>cl -o hook.dll Hook.cpp /D HOOK_DLLEXPORT /link /DLL /DEF:"Hook.def"
Which produces the expected obj, dll, lib and exp files.
So now to get this working in Maven2 with the Mojo-native plugin.
With no options Maven w/Mojo gives me this (truncated) output:
[INFO] [native:initialize {execution: default-initialize}]
[INFO] [native:unzipinc {execution: default-unzipinc}]
[INFO] [native:javah {execution: default-javah}]
[INFO] [native:compile {execution: default-compile}]
[INFO] cmd.exe /X /C "cl -IC:\Develop\hook\src\main\msvc /FoC:\Develop\hook\targ
et\objs\Hook.obj -c C:\Develop\hook\src\main\msvc\Hook.cpp"
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
Hook.cpp
[INFO] [native:link {execution: default-link}]
[INFO] cmd.exe /X /C "link.exe /out:C:\Develop\hook\target\hook.dll target\objs\
Hook.obj"
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : fatal error LNK1561: entry point must be defined
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error executing command line. Exit code:1561
mojo-native gives options for manipulating the compiler/linker options but gives no example of usage. No matter what I tweak in these settings I get the error of:
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to configure plugin parameters for: org.codehaus.mojo:native-maven
-plugin:1.0-alpha-4
(found static expression: '-o hook.dll Hook.cpp /D HOOK_DLLEXPORT /link /DLL
/DEF:"Hook.def"' which may act as a default value).
Cause: Cannot assign configuration entry 'compilerStartOptions' to 'interface ja
va.util.List' from '-o hook.dll Hook.cpp /D HOOK_DLLEXPORT /link /DLL /DEF:"Hook
.def"', which is of type class java.lang.String
The relevant part of my pom.xml looks like this:
<configuration>
<sources>
<source>
<directory>src/main/msvc</directory>
<includes>
<include>**/*.cpp</include>
</includes>
</source>
</sources>
<compilerProvider>msvc</compilerProvider>
<compilerExecutable>cl</compilerExecutable>
<!-- cl -o hook.dll Hook.cpp /D HOOK_DLLEXPORT /link /DLL /DEF:"Hook.def" -->
<compilerStartOptions>-o hook.dll Hook.cpp /D HOOK_DLLEXPORT /link /DLL /DEF:"Hook.def"</compilerStartOptions>
<!-- <compilerMiddleOptions></compilerMiddleOptions>
<compilerEndOptions></compilerEndOptions>
<linkerStartOptions></linkerStartOptions>
<linkerMiddleOptions></linkerMiddleOptions>
<linkerEndOptions></linkerEndOptions>
-->
</configuration>
How do I manipulate the compiler to produce a DLL like the command line version does?
Or should I give up and just use exec?