• beginner assembler for windows? (2/2)

    From Herbert Kleebauer@21:1/5 to paul on Wed Jan 20 11:49:37 2021
    [continued from previous message]

    ; +--------------------------------------------+
    ; | Start of .idat Section |
    ; +--------------------------------------------+


    FBaseOf_idat==@@
    VBaseOf_idat==(@-ImageBase+SectionAlignment-1)/SectionAlignment*SectionAlignment
    BaseOfData==VBaseOf_idat
    @=ImageBase+VBaseOf_idat

    ; Insert initialized variables here (and set UseIdatSection=1
    ; at the top of this file). Because the code section is set
    ; r/w-able, you can put initialized variables also into the
    ; code section.

    ; var1: dc.l 0
    ; var2: dc.l $12345678

    VSizeOf_idat==@-Imagebase-VBaseOf_idat
    @a=@
    evencom FileAlignment
    @=@a
    FSizeOf_idat==@@-FBaseOf_idat

    ; +--------------------------------------------+
    ; | End of .idat Section |
    ; +--------------------------------------------+

    SizeOfInitializedData==FSizeOf_idat


    ; +--------------------------------------------+
    ; | Start of .udat Section |
    ; +--------------------------------------------+


    FBaseOf_udat==@@
    VBaseOf_udat==(@-ImageBase+SectionAlignment-1)/SectionAlignment*SectionAlignment
    @=ImageBase+VBaseOf_udat

    ; Insert uninitialized variables here (and set UseUdatSection=1
    ; at the top of this file). Because the code section is set
    ; r/w-able, you can put uninitialized variables also at the END
    ; of the code section.

    ; buf1: blk.l 10
    ; buf2: blk.l 200

    VSizeOf_udat==@-Imagebase-VBaseOf_udat
    @a=@
    evencom FileAlignment
    @=@a
    FSizeOf_udat==@@-FBaseOf_udat

    ; +--------------------------------------------+
    ; | End of .udat Section |
    ; +--------------------------------------------+

    SizeOfUninitializedData==VSizeOf_udat
    SizeOfImage==(@-ImageBase+SectionAlignment-1)/SectionAlignment*SectionAlignment


    ;#==================================================================#
    ;# End of Sections #
    ;#==================================================================#






    And here the binary as a self extracting batch file:


    @echo off
    certutil -f -decode %~f0 MINI.exe>nul
    goto :eof

    -----BEGIN CERTIFICATE----- TVpgAQEAAAAEAAAA//8AAGABAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAoAAAAA4fug4AtAnNIbgBTM0hTmljZSB0byBtZWV0IHNvbWVi b2R5IHdobyBpcyBzdGlsbCB1c2luZyBET1MsDQpidXQgaGlzIHByb2dyYW0gcmVx dWlyZXMgV2luMzIuDQokAFBFAABMAQEAUHmlNgAAAAAAAAAA4AAPAQsBBQwAAgAA AAAAAAAAAACSEAAAABAAAAAgAAAAAEAAABAAAAACAAAEAAAAAAAAAAQAAAAAAAAA ACAAAAACAAAAAAAAAgAAAAAAEAAAEAAAAAAQAAAQAAAAAAAAEAAAAAAAAAAAAAAA EBAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALnRleHQAAADkAAAAABAAAAACAAAAAgAA AAAAAAAAAAAAAAAAIAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgEAAAAAAAAIQQAAAAAAAA WBAAAAAAAAAAAAAATBAAAAAQAAB8EAAAAAAAAAAAAABuEAAACBAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAVVNFUjMyLmRsbAAAYBAAAAAAAAAAAE1lc3NhZ2VCb3hBAEtF Uk5FTDMyLmRsbAAAhBAAAAAAAAAAAEV4aXRQcm9jZXNzAGoAaK4QQABovhBAAGoA /xUAEEAAagD/FQgQQABNaW5pbXVtIFdpbmRlbGEAICAtLS0gQXNzZW1ibGVyIFB1 cmUgYW5kIFNpbXBsZSAtLS0gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAA==
    -----END CERTIFICATE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)