|
| If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|||||||
| Register | FAQ | Members List | Calendar | Mark Forums Read |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
|
||||
|
Quote:
What is going to suck, coming down the pike is the transfer to these 64-bit operating systems? Why do we need a 64-bit operating system? So that the floating point operations occur to an extra few decimals of accuracy? In any case, almose every 32 bit driver or piece of software will have serious problems. My brother was experimenting with some 64-bit version of WinXP, and none of his software would work. About Linux... You know, I would honestly like to experiment with a linux computer. What prevents me from just out and using it is that you need to find common software that will run on it. Maybe when after I graduate and get enough money to play with more than one computer, I'll dabble in it.
__________________
http://amssolarempire.blogspot.com |
|
||||
|
If anyone is interested, I thought I'd write a simple little C program, compile it for all three architectures, and post the asm output to illustrate the differences. Here is the C program:
Code:
// Test compile to compare x86 and x64 output
#include <stdio.h>
char *arch =
#ifdef _M_X64
"AMD 64-bit";
#elif defined(_M_IA64)
"Itanic 64-bit";
#else
"32-bit";
#endif
static double x = 2.0, y = 3.0, z;
int _cdecl main(int argc, char **argv)
{
int a = 2, b = 3, c;
c = a * b;
z = x * y;
printf( "Hello, %s World. c, z = %i %f \n", arch, c, z );
return(0);
}
Now, here follows the regular Win32 32-bit version of this program: Code:
; Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727.42
TITLE s:\Projects\NET2K5v8\Test3264\test3264.c
.686P
.XMM
include listing.inc
.model flat
INCLUDELIB MSVCRTD
INCLUDELIB OLDNAMES
PUBLIC ??_C@_06BGIBKBII@32?9bit?$AA@ ; `string'
PUBLIC _arch
_DATA SEGMENT
_arch DD FLAT:??_C@_06BGIBKBII@32?9bit?$AA@
ORG $+4
_x DQ 04000000000000000r ; 2
_y DQ 04008000000000000r ; 3
_DATA ENDS
; COMDAT ??_C@_06BGIBKBII@32?9bit?$AA@
CONST SEGMENT
??_C@_06BGIBKBII@32?9bit?$AA@ DB '32-bit', 00H ; `string'
CONST ENDS
PUBLIC ??_C@_0CA@OLNJKCJK@Hello?0?5?$CFs?5World?4?5c?0?5z?5?$DN?5?$CFi?5?$CFf?5?6?$AA@ ; `string'
PUBLIC _main
EXTRN __imp__printf:PROC
EXTRN __fltused:DWORD
EXTRN __RTC_CheckEsp:PROC
EXTRN __RTC_Shutdown:PROC
EXTRN __RTC_InitBase:PROC
_BSS SEGMENT
_z DQ 01H DUP (?)
_BSS ENDS
; COMDAT ??_C@_0CA@OLNJKCJK@Hello?0?5?$CFs?5World?4?5c?0?5z?5?$DN?5?$CFi?5?$CFf?5?6?$AA@
; File s:\projects\net2k5v8\test3264\test3264.c
CONST SEGMENT
??_C@_0CA@OLNJKCJK@Hello?0?5?$CFs?5World?4?5c?0?5z?5?$DN?5?$CFi?5?$CFf?5?6?$AA@ DB 'H'
DB 'ello, %s World. c, z = %i %f ', 0aH, 00H ; `string'
CONST ENDS
; COMDAT rtc$TMZ
rtc$TMZ SEGMENT
__RTC_Shutdown.rtc$TMZ DD FLAT:__RTC_Shutdown
rtc$TMZ ENDS
; COMDAT rtc$IMZ
rtc$IMZ SEGMENT
__RTC_InitBase.rtc$IMZ DD FLAT:__RTC_InitBase
; Function compile flags: /Odtp /RTCsu /ZI
rtc$IMZ ENDS
; COMDAT _main
_TEXT SEGMENT
_c$ = -32 ; size = 4
_b$ = -20 ; size = 4
_a$ = -8 ; size = 4
_argc$ = 8 ; size = 4
_argv$ = 12 ; size = 4
_main PROC ; COMDAT
; 19 : {
push ebp
mov ebp, esp
sub esp, 228 ; 000000e4H
push ebx
push esi
push edi
lea edi, DWORD PTR [ebp-228]
mov ecx, 57 ; 00000039H
mov eax, -858993460 ; ccccccccH
rep stosd
; 20 :
; 21 : int a = 2, b = 3, c;
mov DWORD PTR _a$[ebp], 2
mov DWORD PTR _b$[ebp], 3
; 22 : c = a * b;
mov eax, DWORD PTR _a$[ebp]
imul eax, DWORD PTR _b$[ebp]
mov DWORD PTR _c$[ebp], eax
; 23 : z = x * y;
fld QWORD PTR _x
fmul QWORD PTR _y
fstp QWORD PTR _z
; 24 :
; 25 : printf( "Hello, %s World. c, z = %i %f \n", arch, c, z );
mov esi, esp
sub esp, 8
fld QWORD PTR _z
fstp QWORD PTR [esp]
mov eax, DWORD PTR _c$[ebp]
push eax
mov ecx, DWORD PTR _arch
push ecx
push OFFSET ??_C@_0CA@OLNJKCJK@Hello?0?5?$CFs?5World?4?5c?0?5z?5?$DN?5?$CFi?5?$CFf?5?6?$AA@
call DWORD PTR __imp__printf
add esp, 20 ; 00000014H
cmp esi, esp
call __RTC_CheckEsp
; 26 :
; 27 : return(0);
xor eax, eax
; 28 :
; 29 :
; 30 : }
pop edi
pop esi
pop ebx
add esp, 228 ; 000000e4H
cmp ebp, esp
call __RTC_CheckEsp
mov esp, ebp
pop ebp
ret 0
_main ENDP
_TEXT ENDS
END
|
|
||||
|
Now, here is the AMD64 (x64) version of that program:
Code:
; Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727.42
include listing.inc
INCLUDELIB MSVCRTD
INCLUDELIB OLDNAMES
PUBLIC arch
_DATA SEGMENT
$SG2140 DB 'AMD 64-bit', 00H
ORG $+5
arch DQ FLAT:$SG2140
x DQ 04000000000000000r ; 2
y DQ 04008000000000000r ; 3
$SG2153 DB 'Hello, %s World. c, z = %i %f ', 0aH, 00H
_DATA ENDS
PUBLIC main
EXTRN __imp_printf:PROC
EXTRN _fltused:DWORD
EXTRN _RTC_Shutdown:PROC
EXTRN _RTC_InitBase:PROC
_BSS SEGMENT
z DQ 01H DUP (?)
_BSS ENDS
pdata SEGMENT
$pdata$main DD imagerel $LN3
DD imagerel $LN3+137
DD imagerel $unwind$main
pdata ENDS
xdata SEGMENT
$unwind$main DD 022601H
DD 0700a520eH
xdata ENDS
; COMDAT rtc$TMZ
; File s:\projects\net2k5v8\test3264\test3264.c
rtc$TMZ SEGMENT
_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown
rtc$TMZ ENDS
; COMDAT rtc$IMZ
rtc$IMZ SEGMENT
_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase
; Function compile flags: /Odtp /RTCsu
rtc$IMZ ENDS
_TEXT SEGMENT
a$ = 32
b$ = 36
c$ = 40
argc$ = 64
argv$ = 72
main PROC
; 19 : {
$LN3:
mov QWORD PTR [rsp+16], rdx
mov DWORD PTR [rsp+8], ecx
push rdi
sub rsp, 48 ; 00000030H
mov rdi, rsp
mov rcx, 12
mov eax, -858993460 ; ccccccccH
rep stosd
mov ecx, DWORD PTR [rsp+64]
; 20 :
; 21 : int a = 2, b = 3, c;
mov DWORD PTR a$[rsp], 2
mov DWORD PTR b$[rsp], 3
; 22 : c = a * b;
mov eax, DWORD PTR a$[rsp]
imul eax, DWORD PTR b$[rsp]
mov DWORD PTR c$[rsp], eax
; 23 : z = x * y;
movsdx xmm0, QWORD PTR x
mulsd xmm0, QWORD PTR y
movsdx QWORD PTR z, xmm0
; 24 :
; 25 : printf( "Hello, %s World. c, z = %i %f \n", arch, c, z );
movsdx xmm3, QWORD PTR z
movd r9, xmm3
mov r8d, DWORD PTR c$[rsp]
mov rdx, QWORD PTR arch
lea rcx, OFFSET FLAT:$SG2153
call QWORD PTR __imp_printf
; 26 :
; 27 : return(0);
xor eax, eax
; 28 :
; 29 :
; 30 : }
add rsp, 48 ; 00000030H
pop rdi
ret 0
main ENDP
_TEXT ENDS
END
Code:
// Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727.42
.file "s:/Projects/NET2K5v8/Test3264/test3264.c"
.radix D
.section .text, "ax", "progbits"
.align 32
.section .pdata, "a", "progbits"
.align 4
.section .xdata, "a", "progbits"
.align 8
.section .text$zz, "ax", "progbits"
.align 16
.section .pdata, "a", "progbits"
.align 4
.section .text$zy, "ax", "progbits"
.align 16
.section .pdata, "a", "progbits"
.align 4
.section .data, "wa", "progbits"
.align 16
.section .rdata, "a", "progbits"
.align 16
.section .bss, "wa", "nobits"
.align 16
.section .debug$S, "ax", "progbits"
.align 16
.section $$TYPES, "ax", "progbits"
.align 16
.section .tls$, "was", "progbits"
.align 16
.section .sdata, "was", "progbits"
.align 16
.section .sbss, "was", "nobits"
.align 16
.section .srdata, "as", "progbits"
.align 16
.section .rdata, "a", "progbits"
.align 16
.section .data, "wa", "progbits"
.align 16
.global arch#
.section .data
$SG1892: string "Hello, %s World. c, z = %i %f \n\000"
.section .sdata
y: real8 3.000000000000000000e+000
x: real8 2.000000000000000000e+000
arch: data8 $SG1878#
.section .data
$SG1878: string "Itanic 64-bit\000"
.type main# ,@function
.global main#
.type _RTC_Shutdown# ,@function
.global _RTC_Shutdown#
.type _RTC_InitBase# ,@function
.global _RTC_InitBase#
.type __imp_printf# ,@function
.global __imp_printf#
.type _fltused# ,@object
.global _fltused#
.type _RTC_CheckStackVars# ,@function
.global _RTC_CheckStackVars#
.section .sbss
z: .skip 8
.section .pdata
$T1913: data4 @imagerel($LN4@main#)
data4 @imagerel($LN4@main#+464)
data4 @imagerel($T1911#)
.section .xdata
$T1911: data2 03H
data2 00H
data4 03H
string "\x17" //R1:prologue size 23
string "\xe6\x00" //P7:pfs_when time 0
string "\xb1\x23" //P3:pfs_gr 35
string "\xe0\x03\x04" //P7:mem_stack_f time 3 size 4
string "\xe4\x07" //P7:rp_when time 7
string "\xb0\xa2" //P3:rp_gr 34
string "\x61\x40" //R3:body size 64
string "\x81" //B1:label_state 1
string "\xc0\x05" //B2:ecount 0 time 5
string "\x00\x00\x00\x00\x00\x00\x00" //padding
.section ??.rtc$TMZ = "aY", "comdat"
.secalias ??.rtc$TMZ, ".rtc$TMZ"
.align 16
// File s:\projects\net2k5v8\test3264\test3264.c
_RTC_Shutdown.rtc$TMZ:
data8 _RTC_Shutdown#
.section ??.rtc$IMZ = "aY", "comdat"
.secalias ??.rtc$IMZ, ".rtc$IMZ"
.align 16
_RTC_InitBase.rtc$IMZ:
data8 _RTC_InitBase#
// Function compile flags: /Odtp /RTCsu
.section .text
// Begin code for function: main:
.proc main#
.align 32
a$ = 20
b$ = 32
c$ = 44
argc$ = 64
argv$ = 72
main:
// argc$ = r32
// argv$ = r33
// Output regs: r37-r40
$LN4@main:
// 19 : {
{ .mli //R-Addr: 0X00
alloc r35=2, 3, 4, 0 //19 cc:0
movl r27=-3689348814741910324 //19 cc:0, ccccccccccccccccH
}
{ .mmi //R-Addr: 0X010
adds sp=-64, sp //19 cc:0, ffffffc0H
mov r36=gp //19 cc:0
mov r28=5;; //19 cc:0
}
{ .mii //R-Addr: 0X020
ld8.nta r2=[sp] //19 cc:1
mov r34=b0 //19 cc:1
adds r3=8, sp;; //19 cc:1
}
{ .mmb //R-Addr: 0X030
mov r2=sp //19 cc:2
nop.m 0
nop.b 0;;
}
$LN3@main:
// 19 : {
{ .mmi //R-Addr: 0X040
st8 [r2]=r27, 16 //19 cc:0
st8 [r3]=r27, 16 //19 cc:0
cmp.ne.unc p14,p15=1, r28 //19 cc:0
}
{ .mmb //R-Addr: 0X050
adds r28=-1, r28 //19 cc:0
nop.m 0
(p14) br.cond.dptk.many $LN3@main#;; //19 cc:0
}
// 20 :
// 21 : int a = 2, b = 3, c;
// 22 : c = a * b;
// 23 : z = x * y;
// 24 :
// 25 : printf( "Hello, %s World. c, z = %i %f \n", arch, c, z );
// 26 :
// 27 : return(0);
// 28 :
// 29 :
// 30 : }
{ .mib //R-Addr: 0X060
adds r31=argc$, sp
adds r30=argv$, sp
nop.b 0;;
}
{ .mmb //R-Addr: 0X070
st4 [r31]=r32
st8 [r30]=r33
nop.b 0;;
}
{ .mmi //R-Addr: 0X080
mov r29=2 //21 cc:0
adds r28=a$, sp //21 cc:0
mov r27=3 //21 cc:0
}
{ .mmi //R-Addr: 0X090
adds r26=b$, sp;; //21 cc:0
st4 [r28]=r29 //21 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X0a0
st4 [r26]=r27;; //21 cc:1
adds r25=a$, sp //22 cc:0
adds r21=b$, sp //22 cc:0
}
{ .mmi //R-Addr: 0X0b0
adds r18=c$, sp;; //22 cc:0
ld4 r22=[r25] //22 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X0c0
ld4 r20=[r21];; //22 cc:1
setf.sig f6=r22 //22 cc:2
nop.i 0
}
{ .mmb //R-Addr: 0X0d0
setf.sig f7=r20 //22 cc:2
nop.m 0
nop.b 0;;
}
{ .mfb //R-Addr: 0X0e0
nop.m 0
xma.l f8=f6, f7, f0 //22 cc:8
nop.b 0;;
}
{ .mmi //R-Addr: 0X0f0
getf.sig r19=f8;; //22 cc:12
st4 [r18]=r19 //22 cc:17
nop.i 0;;
}
{ .mmi //R-Addr: 0X0100
addl r17=@gprel(x#),gp //23 cc:0
addl r16=@gprel(y#),gp //23 cc:0
addl r15=@gprel(z#),gp;; //23 cc:0
}
{ .mmb //R-Addr: 0X0110
ldfd f9=[r17] //23 cc:1
ldfd f10=[r16] //23 cc:1
nop.b 0;;
}
{ .mfb //R-Addr: 0X0120
nop.m 0
fmpy.d.s0 f11=f9, f10 //23 cc:7
nop.b 0;;
}
{ .mmi //R-Addr: 0X0130
stfd [r15]=f11;; //23 cc:11
addl r11=@gprel(z#),gp //25 cc:0
addl r31=@gprel(__imp_printf#),gp //25 cc:0
}
{ .mmi //R-Addr: 0X0140
addl r9=@gprel(arch#),gp //25 cc:0
addl r8=@ltoff($SG1892#),gp //25 cc:0
adds r10=c$, sp;; //25 cc:0
}
{ .mmb //R-Addr: 0X0150
ld8 r30=[r31] //25 cc:1
ldfd f8=[r11] //25 cc:1
nop.b 0;;
}
{ .mmb //R-Addr: 0X0160
ld4 r39=[r10] //25 cc:2
ld8 r38=[r9] //25 cc:2
nop.b 0;;
}
{ .mmb //R-Addr: 0X0170
ld8 r29=[r30], 8 //25 cc:3
ld8 r37=[r8] //25 cc:3
nop.b 0;;
}
{ .mib //R-Addr: 0X0180
ld8 gp=[r30] //25 cc:4
mov b6=r29 //25 cc:4
nop.b 0;;
}
{ .mmb //R-Addr: 0X0190
getf.d r40=f8 //25 cc:7
nop.m 0
br.call.dptk.many b0=b6;; //25 cc:7
}
{ .mmi //R-Addr: 0X01a0
mov gp=r36;; //25 cc:18
mov gp=r36 //27 cc:0
mov r8=r0;; //27 cc:0
}
{ .mii //R-Addr: 0X01b0
adds sp=64, sp //30 cc:0, 00000040H
mov.ret b0=r34;; //30 cc:0
mov.i ar.pfs=r35 //30 cc:1
}
{ .mmb //R-Addr: 0X01c0
nop.m 0
nop.m 0
br.ret.sptk.many b0;; //30 cc:1
}
// End code for function:
.endp main#
// Total code size for all functions: 0X01d0 bytes (29 bundles)
// END
|
|
||||
|
Whatever they do with a new Windows, they must do something about the all users/admin/this user random file jungle on PC's used by a single user. Many PC's still are being used by a single user, support it!
__________________
To the regular visitor of internet bulletin boards it is clear that it's an excellent idea your parents get to choose your real name. |
|
||||
|
"Oh, no, Mr. Bill!"
Quote:
Last edited by sarongsong; 25-December-2006 at 03:53 PM. |
|
||||
|
That was my problem with XP when it first came. MS toted its improved security and network sharing capabilities (possible oxymoron). Unfortunately the improved sharing capabilities opened up a number of new potential security hacks. It also created easier access (and no or little explanation) to a number of security and network settings that most home users don’t have a clue how to properly use, once again leading to potential hacks.
I recently had an IT person once tell me XP should under no circumstance never, ever need to be reinstalled, that’s why MS figured they could limit the installs. All I said was …. right…. I’ve too many nasty viruses where even professionals couldn’t totally remove and could only partially isolate, a re-install was the only 100% solution.
__________________
Photons have mass? I didn't even know they were Catholic. |
|
||||
|
Quote:
![]() There are a few things I don't like: eCS insists on installing logical volume management (LVM) whether you want it or not. This means that if your system has multiple operating systems on it (such as my secondary desktop computer and my laptop) those other operating systems have to be installed first. Other partitioning utilities haven't got a clue what IBM's LVM is doing, nor do many live CD-ROMs. My laptop has eCS 1.0 on it in addition to OS/2 Warp 4 (fixpack 11), Red Hat 7.0, and BeOS 4.5. My secondary desktop does not have eCS on it. My main computer has eCS 1.2 on it exclusively and it has been nice. I'm sorry that I didn't see this and respond earlier.
__________________
Microsoft is over if you want it. The bar has been lowered for the promotion of ATM ideas; the bar for the acceptance of ATM ideas must remain high. |
|
|||
|
Some interesting comments in this article. If half of what is claimed in the article is true I think I will be holding off on Vista for as long as possible. Sounds like a resource hog, spends most of it's resources making sure you can't use it for what you want to use it for.
I can see some very good reasons for businesses to not use it, they have less interest in the so called "premium content" and they will just be limiting themselves and increasing their hardware costs to use it. Windows Vista seems to be geared towards focusing on being a consumer "media PC" and not a serious business/commercial.scientific platform. |
|
||||
|
Quote:
The "content industry" has the clout to get this crap passed because they have tons of money. And where do they get that money? From the millions of people who buy their crap. If people would just stop buying their crap, they'd go belly up and that would be the end of their crap. I haven't bought any music or videos in several years. The recording industry and "content providers" aren't getting one more red cent out of me. I only wish all the rest of the millions of people would do that. Just for one month. One little month of not buying would send a shock wave through that would blow them away. -Richard |
|
|||
|
Just exactly what is supposed to be GOOD about this thing that isn't good about XP? Why WOULD anybody want it?
Making windows appear to fade into and out of the distance when the user switches to and from them (or whatever it is that makes them do that) just doesn't matter... and if it did we could make or find a program that would do it for us in 2D processing by just altering with the window's size and shading anyway. Last edited by Delvo; 26-December-2006 at 05:43 AM. |
|
||||
|
Well, so far, I have to say I really like Vista. It seems to run faster than XP, boot faster (on the same computer), and be just as stable.
I like it. Yeah, there are a couple of bugs, but that's to be expected. |
|
||||
|
Quote:
Hmmm. "The OS/2 Guy" sounds vaguely familiar. Playing around, I've got OS/2 Warp 4 (what fixpack level, I don't recall -- I had to install several) set up in a virtual machine under Virtual PC here just to play. I haven't (virtually) booted it in a while, but I did enjoy playing around. The way Virtual PC works, you can network with the host machine -- the guest OS thinks its on a network with the host machine, and I was able to access files. XP still has NT's roots in it's, which includes extended attribute support for FAT16 and NTFS volumes (but it didn't bother for FAT32), and I noticed that OS/2 over the network, created various EAs on the drives it accessed over the network. Can you recommend a good web browser for OS/2? Well, wait a minute, did Firefox make one? Anyway, next time I play with OS/2 I'd like a decent browser to see how that feels. -Richard |
|
||||
|
CM,
Nevermind, I'm posting this via Warp4 in the VM using a version of Firefox I installed. Heck, I set this up quitenicely here, but forgot all about it. Only problem is the onscreen fonts stink, and typing here is slow as heck. Don't know if that's the VM's fault or what. -Richard |
|
||||
|
Quote:
That being said, I am going to get a few of the free Vista upgrades sent to us to see how many things break in our little "test lab."
__________________
You just said "nuclear". It's "nukular", dummy, the "s" is silent! -Peter Griffin |