Recent Posts

Pages: [1] 2 3 ... 10
1
The Orphanage / Google
« Last post by shankle on Today at 10:04:52 AM »
              9-21-2018
Stats: Windows 7 Pro 64-bit, Google and Gmail, uefi, Eset SS,
       Wise disk cleaner, Sandboxie
Hi Hutch,
I could not find your address to send this message privately.
I am an old member of Masm32 from the USA.
Thank you for the Masm forum.
I'm getting kind of old and can not keep up with things
like I used to. Thought you might help me with a little
advice.
I am sure you are aware of the stunts that Google is pulling
these days. Like all big companies they change things without
giving folks the option to NOT accept them. Shades of Microsoft's
behavior. I like Gmail and it doesn't seem to be giving me any
trouble.
AS much trouble that replacing GOOGLE is going to cause me, I wondered
if you would be kind enough to advise me as to another browser. One
that I can import my goodies from Google to that browser. Many years
ago I have used FireFox and didn't like it. I need some help with
picking a decent BROWSER so I won't have to browser hop to find one
that doesn't screw its users.
If you have to time I would appreciate your help.
Regards,
Jack Shankle
          
2
The Laboratory / Re: Hyperthreading - Revisited
« Last post by Siekmanski on Today at 05:22:33 AM »
When hyperthreading was new,I read advice to turn off hypertreading for best performance,it would be nice to make a test for this,to test if its true or false or in some code its true and some it is false
I believe most games and applications scale well with a thread pool up to the number of logical cores. Personally, I have doubts that switching off hyperthreading will improve, but some people may know a lot more than I do about this.

You can try "semi" turning off hyperthreading by using SetThreadAffinityMask and put your threads only on even or uneven Logical Processors.
3
UASM Assembler Development / Re: Stack issues
« Last post by hutch-- on Today at 04:10:01 AM »
Give this technique a blast in UASM, I can only test in MASM but I have turned off the automatic stack frame and have coded it manually and I think UASM produces the same start alignment at the entry point.

; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

    include \masm32\include64\masm64rt.inc

    .code

 NOSTACKFRAME

; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

 entry_point proc

    push rbp
    mov rbp, rsp
    sub rsp, 128

    call testproc
    invoke ExitProcess,0

    leave
    ret

 entry_point endp

; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

 testproc proc

    push rbp
    mov rbp, rsp
    sub rsp, 32

    invoke MessageBox,0,"Called within a stack frame","Title",MB_OK

    leave
    ret

testproc endp

; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

 STACKFRAME

    end
4
The Laboratory / Re: Hyperthreading - Revisited
« Last post by hutch-- on Today at 03:43:32 AM »
From memory it used to be a limitation at an operating system level where if you had a multi-threading processor back then the OS could not properly use the capacity. With QE I use a similar approach to Jose's output taken directly from the operating system as its easy enough to handle and reliable.

Funny enough I am writing some CPUID code at the moment, mainly so it can find the instruction set family that can be used with each processor so you can dial in code to a processor version without it crashing on older hardware. It handles up to AVX ok but I have to decipher Intel's current manual for AVX2.
5
The Laboratory / Re: Hyperthreading - Revisited
« Last post by AW on Today at 03:04:36 AM »
When hyperthreading was new,I read advice to turn off hypertreading for best performance,it would be nice to make a test for this,to test if its true or false or in some code its true and some it is false
I believe most games and applications scale well with a thread pool up to the number of logical cores. Personally, I have doubts that switching off hyperthreading will improve, but some people may know a lot more than I do about this.
6
Game Development / Re: my 100% Assembly game development
« Last post by daydreamer on Today at 01:55:03 AM »
Welcome back lord adef
I am interested to learn gdi way of pictures/ tiles/ sprites topdown or sidescroller or isometric style
7
The Laboratory / Re: Hyperthreading - Revisited
« Last post by daydreamer on Today at 01:48:04 AM »
When hyperthreading was new,I read advice to turn off hypertreading for best performance,it would be nice to make a test for this,to test if its true or false or in some code its true and some it is false
8
UASM Assembler Development / Re: Stack issues
« Last post by LiaoMi on Today at 01:08:11 AM »
Hi,

why does an exception occur when I call the MessageBox? In the first experiment, I manually do the alignment, in the other I hope that uasm64 will do it, but something is not going according to plan :( Two binary files can be downloaded below .. In general, I have noticed before that uasm does not align stack ?! Or I'm wrong?

Code: [Select]
.686
.MMX
.XMM
.x64

option casemap:none
option win64:15;win64:11
option frame:auto
option stackbase:rsp
option dotname
option evex:1
option proc:private
WIN32_LEAN_AND_MEAN equ 1
.nolist
.nocref

    include C:\masm64\VS2017\include_x86_x64\translate64.inc
    include C:\masm64\sdkrc100\um\windows.inc
    include macros64_Uasm.inc
;MessageBox proto :QWORD,:QWORD,:QWORD,:DWORD
;ExitProcess proto :DWORD
; -----------------------------------------
  ; non branching version with no ELSE clause
  ; -----------------------------------------
      chr$ MACRO any_text:VARARG
        LOCAL txtname
        .data
          IFDEF __UNICODE__
            WSTR txtname,any_text
            ;align 4
            .code
            EXITM <OFFSET txtname>
          ENDIF

          txtname db any_text,0
          ;align 4
          .code
          EXITM <OFFSET txtname>
      ENDM
 
      memalign MACRO reg, number
        sub reg, 8
        add reg, number - 1
        and reg, -number
      ENDM

Prologue64 MACRO       
                push        rdi 
  sub         rsp, 100h 
  mov         rdi, rsp
  ENDM

Epilogue64 MACRO
add       rsp, 100h
                    pop       rdi 
          ENDM

;     ~~~~~~~~~
;     libraries
;     ~~~~~~~~~
    ; ------------------------------------------
    ; import libraries for Windows API functions
    ; ------------------------------------------

includelib Kernel32.lib
includelib  User32.lib
includelib  Msimg32.lib         
includelib  Comctl32.lib
includelib  Comdlg32.lib
includelib  Shell32.lib           
includelib  OleAut32.lib             
includelib  Ole32.lib
includelib  Advapi32.lib

.data
 Me db "Test UASM Debug Compiling",0
.code

Main proc FRAME
    ;Prologue64
    invoke MessageBox,0,chr$("Test UASM Debug Compiling"),chr$("Test"),0
    ;Epilogue64
    ret
Main endp


start:
    enter 16,0
    ;memalign rsp,16
    invoke Main
    invoke ExitProcess,0
    leave
end start
9
The Laboratory / Hyperthreading - Revisited
« Last post by AW on Today at 12:51:21 AM »
This is a follow up of this message where I mentioned that the detection method I was using failed with AMD Ryzen processors and that I would try another approach.

This new approach is API based so it should work for both Intel and AMD because the OS will handle the nitty-gritty details on our behalf.

The results do not explicitly mention Hyperthreading because this is an Intel specific term and there are other possibilities. However, when Logical processors is more than Processor Cores you may in general consider the reason is Hyperthreading.

Code: [Select]
Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
Vendor: GenuineIntel
Family: 6
Number of NUMA nodes: 1
Number of Physical Processor Packages: 1
Number of Processor Cores: 6
Number of Logical Processors: 12
10
The Workshop / Multiply two OWORDs
« Last post by AW on September 21, 2018, 04:56:17 PM »
64-bit code to multiply 2 OWORDs and obtain a 256-bit number.

Code: [Select]
mul 128bitx128bit = 256bit result
2312 cycles for 100 * mul128x128_256 (AW)
val1=0xa548ddeb93f93d70479983e499807805
val2=0x538999ea78812af3c92329fd26552a91
val1*val2=0x35ef77521316318c1b59f6f041c08950a5ee764d3dee56f11425a9139d1dccd5
Pages: [1] 2 3 ... 10