Recent Posts

Pages: [1] 2 3 ... 10
1
UASM Assembler Development / Re: UASM 2.46 Release
« Last post by johnsa on Today at 02:01:27 AM »
Another note to include is that I've also added support for the C style calls to handle equates.

We parse the high level calls before any form of expansion or substitution on the line, but can now handle something like:

WriteConsoleA EQU <__imp_WriteConsoleA>
WriteConsole EQU <WriteConsoleA>

WriteConsole( ... )

By traversing the equates to see if they evaluate to a real procedure either locally defined in the project or marked as external.
2
UASM Assembler Development / Re: UASM 2.46 Release
« Last post by johnsa on Today at 01:29:07 AM »
Updated packages will be publish shortly for 2.46.5.

I've started including the sub version number on the site so it's easier to see which is current , apart from checking the date.

Changes are:
1) Included a new oo3.sample that shows how to invoke methods from inside methods using thisPtr and pointer syntax.
Code: [Select]
mov rsi,thisPtr
assume rsi:PTR Person

mov rax,lstrlen([rcx].pName)
WriteConsole( [rsi].handle, [rsi].pName, eax, ADDR bWritten, NULL )

assume rsi:NOTHING

; calls to other instance methods with pointer syntax.
; -> Because the METHOD declaration sets the prototype, you cannot forward reference methods.
thisPtr->SetName("New name")

mov rcx,thisPtr
mov rax,[rcx].handle
mov rbx,[rcx].pName
invoke WriteConsole, rax, rbx, 8, ADDR bWritten, NULL

; calls to other instance methods with pointer syntax using a register.
lea rcx,thisPtr
[rcx].Person->SetName("New name")

2) Added a bunch of new regression tests and fixed some evex support queries around usage in macros, including decorators { } being passed in and out of macros and equate substitution in evex expressions.
Code: [Select]

vsubpd zmm0 {KMASK}, zmm1, zmm2 ; direct macro substitution works.

;--------------------------------------------------------

znoconst_rounding_single_nottp MACRO zmmval, zmmcarry, kwritemask
    zfmsubpd zmmcarry, {kwritemask}, zmmval, zmm24, zmm20
    zfmsubpd zmm16, {kwritemask}, zmmcarry, zmm26, zmm22
    vsubpd zmmval {kwritemask}, zmmval, zmm16
ENDM

;--------------------------------------------------------

znoconst MACRO zmmval, kwritemask
   vsubpd zmmval {kwritemask}, zmmval, zmm16
   ; multiple elements can be substituted in the macro, include
   ; placeholder for register and decorator.
   vsubpd zmm2 {kwritemask}, zmmval, zmm16
   ; register + expanded decorator from macro parameter works.


3) Added optimisation, previously a 0 valued immediate would be optimised to an xor during invoke, now the same applies to zero-valued equates.

3
The Laboratory / Re: Hardware Enumerator [Beta Test]
« Last post by Raistlin on December 13, 2017, 11:37:11 PM »
@LiaoMi - THANX

-> Possibly: all I could find on the Internet for this exception is that the receive buffer might have been too small,
    causing the overwrite of the ICMP handle
-> Solution: updated the receive buffer size in ver 0.6, so we'll see if resolved - posting soon
-> Other: perhaps you have an ultra large or small MTU configured or windows is fire-walling "Ping /ICMP" traffic
4
The Laboratory / Re: Hardware Enumerator [Beta Test]
« Last post by Jokaste on December 13, 2017, 09:00:49 PM »





5
The Laboratory / Re: Hardware Enumerator [Beta Test]
« Last post by LiaoMi on December 13, 2017, 08:14:25 PM »
Hi Raistlin,

there is an error with the exception in the kernel of windows

Code: [Select]
EXCEPTION_DEBUG_INFO:
           dwFirstChance: 1
           ExceptionCode: C0000005 (EXCEPTION_ACCESS_VIOLATION)
          ExceptionFlags: 00000000
        ExceptionAddress: 77BDA280 ntdll.77BDA280
        NumberParameters: 2
ExceptionInformation[00]: 00000000 Read
ExceptionInformation[01]: 00000008 Inaccessible Address
First chance exception on 77BDA280 (C0000005, EXCEPTION_ACCESS_VIOLATION)!

after the function call

Code: [Select]
003315AA                                    | MOV     EDX, DWORD PTR SS:[EBP - C]                             |
003315AD                                    | MOV     DWORD PTR DS:[335218], EDI                              |
003315B3                                    | MOV     EAX, DWORD PTR DS:[EDX + 8]                             |
003315B6                                    | MOV     DWORD PTR DS:[33521C], EAX                              |
003315BB                                    | PUSH    DWORD PTR SS:[EBP - 4]                                  |
003315BE                                    | CALL    <testid.IcmpCloseHandle>                                |
6
16 bit DOS Programming / Re: a little help with my x86 assembly book
« Last post by jj2007 on December 13, 2017, 07:25:41 PM »
Have a close look at Tips, Tricks and Traps.
7
The Workshop / Re: In the gui path...
« Last post by jj2007 on December 13, 2017, 07:22:47 PM »
You could refine it and make it more efficient if you create the WNDCLASSEX structure directly on the stack:
Code: [Select]
  push NULL ; last arg of CreateWindowEx
  push NULL
  call GetModuleHandle
  push eax ; 2nd last arg of CreateWindowEx
  push 32512
  push eax
  xchg eax, ebx
  call LoadIcon
  push NULL ; wndclaex[44]
  push offset claname
  push NULL ; wndclaex[36]
  push WHITE_BRUSH
  call GetStockObject
  push eax ; wndclaex[32]
  push IDC_ARROW
  push NULL
  call LoadCursor
  push eax ; wndclaex[28]
  push 32512
  push ebx
  call LoadIcon
  push eax ; wndclaex[24]
  push ebx ; wndclaex[20]
  push 0 ; wndclaex[16]
  push 0 ; wndclaex[12]
  push wndproc
  push CS_HREDRAW or CS_VREDRAW
  push WNDCLASSEX
  push esp
  call RegisterClassEx
  push NULL
  push NULL
  push CW_USEDEFAULT
  push CW_USEDEFAULT
  push CW_USEDEFAULT
  push CW_USEDEFAULT
  push WS_OVERLAPPEDWINDOW
  push offset wndname
  push offset claname
  push WS_EX_OVERLAPPEDWINDOW
  call CreateWindowEx
  add esp, WNDCLASSEX
8
The Laboratory / Re: Hardware Enumerator [Beta Test]
« Last post by Raistlin on December 13, 2017, 07:16:25 PM »
@Jokaste : OUCH - multiple issues - is this running inside a Virtual Machine ? that might explain allot

1) Speed Approx = 720Mhz - was your laptop in speed-step mode ? (try running detect with charger plugged in)
2) Cores per package count - should be 2 - damnit....
3) Reporting L3 cache - is this correct ? - please try CPU Z and let me know. Ca'nt seem to get full spec sheet on this CPU
4) Display card not popping up - damnit.....

Thanks so Much ! - appreciated - this is beta test after-all - lets catch those bugs. :shock:
9
The Campus / MOVED: a little help with my x86 assembly book
« Last post by hutch-- on December 13, 2017, 04:26:35 PM »
10
16 bit DOS Programming / Re: a little help with my x86 assembly book
« Last post by ahmedES on December 13, 2017, 03:19:36 PM »
thanks felipe , i compiled and linked it with these command and it worked
Code: [Select]
ml /c /omf  file.asm
link16  file.obj,,,,,
now i'm willing to convert it to 32-bit flat module and i have a question , what should i use instead of DOS system interrupts ?
Pages: [1] 2 3 ... 10