flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > Quark MCU Goto page 1, 2 Next |
Author |
|
edfed 08 Aug 2016, 09:54
finally, we got this so long wanted mcu.
a 32 bits, x86 compatible, low cost, low energy mcu. http://www.intel.fr/content/www/fr/fr/embedded/products/quark/mcu/d2000/overview.html now, we have a "arduino compatible" x86 mcu. the MCU itself costs less than 5$ in unit quantity, and down to 3.01$ in 1000 quantity. http://www.mouser.fr/ProductDetail/Intel/DMNIAD01SLVBT-SLKMJ/?qs=%2fha2pyFaduiDim%2fTinIre77C9VPYZ82QZGSPbbATydRvgKiDAINaBLoI84PQDfnu i think it is now or never the time to devellop a sort of system dev kit for fasm using this controler as hardware, and fasm ide as dev tool. when i see the other products like this (teensy, adafruit, arduino, ....) i imediatelly dream about a tiny dev board with a x86 cmu onto, and a price of about 10$/20$, ready to go. |
|||
08 Aug 2016, 09:54 |
|
shoorick 08 Aug 2016, 10:19
OTP :S
|
|||
08 Aug 2016, 10:19 |
|
edfed 08 Aug 2016, 10:22
more robust? maybe they assume that the x86 supremacy and experience in the PC world is a gage of robustness.
|
|||
08 Aug 2016, 10:22 |
|
revolution 08 Aug 2016, 10:34
To me, "robust" suggests that it is more reliable when faced with conditions that might cause malfunctions/errors. Which makes no sense when applied to an instruction set.
Perhaps it is just marketing-speak for "we don't have a good reason why this would be better so we just made up some vague shit and hope that people will think it is cool". |
|||
08 Aug 2016, 10:34 |
|
JohnFound 08 Aug 2016, 10:44
I will buy some to play and then will give some impressions. IMHO, the idea is great, so let's check the implementation.
|
|||
08 Aug 2016, 10:44 |
|
edfed 08 Aug 2016, 11:29
indeed, i don't care theirs arguments. I always wanted a x86 mcu, now it's there, let's go.
|
|||
08 Aug 2016, 11:29 |
|
nkeck72 14 Sep 2016, 01:31
Seems like an interesting product, might get my hands on one and start working around with it.
|
|||
14 Sep 2016, 01:31 |
|
Trinitek 14 Sep 2016, 02:27
I can't seem to find any information about which instructions it supports or how it boots. Does it boot directly into protected mode or do we still have to do the jump from real mode? Are memory protection features present? Is there a GDT to load?
|
|||
14 Sep 2016, 02:27 |
|
jmg 20 Sep 2016, 01:00
Trinitek wrote: I can't seem to find any information about which instructions it supports or how it boots. Does it boot directly into protected mode or do we still have to do the jump from real mode? Are memory protection features present? Is there a GDT to load? Let us know if anyone finds D2000 Opcode & Instruction Timing info. I did find some info on the older D1000, in this pdf quark-d1000-programmer-reference-manual.pdf ( Nov 2015) which seems an 'engineering sample' pass 1 at the D2000, so have assumed the opcodes are very similar. From my understanding, this is not a 'normal' i386, it has 32b opcodes, but not default 16b modes. It does have a 32*32 -> 64 and 64/32 -> 32.32 opcodes, which could be interesting. Strangely, intel thinks they can make only a chip, and information is optional. They still have much to (re) learn about Microcontrollers. There is a low cost Eval Board, and software compilers, so you can download the tools, and write some small test programs, and see what opcodes come out the other end. Board for the MCU FND2000 SR2KF has the cryptic name of MTFLD.CRBD.AL $14.95 from Mouser. Addit: When I asked intel about D2000 opcode info, some weeks back, I got a shrug. Checking back, I see there is now mention of a Programmer Reference Manual: Intel Quark D2000 but alas, that is behind multiple layers of login/NDA. My standard intel account it seems, is not ' Privileged' enough ?! *sigh* Guys, this is a modest $3 MCU, in a sea of modest $3 MCU's, not the keys to Fort Knox !!! If you do not want this to flop, let designers have access to the information! |
|||
20 Sep 2016, 01:00 |
|
edfed 20 Sep 2016, 14:59
D1000 programmer manual
good news intel wrote:
|
|||
20 Sep 2016, 14:59 |
|
revolution 20 Sep 2016, 15:05
edfed wrote:
|
|||
20 Sep 2016, 15:05 |
|
Tomasz Grysztar 20 Sep 2016, 15:34
jmg wrote: It does have a 32*32 -> 64 and 64/32 -> 32.32 opcodes, which could be interesting. |
|||
20 Sep 2016, 15:34 |
|
Tomasz Grysztar 20 Sep 2016, 15:43
revolution wrote:
|
|||
20 Sep 2016, 15:43 |
|
Trinitek 21 Sep 2016, 04:55
Thanks for the link. So to answer my questions... There is no segmentation, and thus no segment registers. By extension, this also means that the processor boots into a protected mode-like state with flat addressing, and that no real mode is available.
|
|||
21 Sep 2016, 04:55 |
|
Trinitek 21 Sep 2016, 05:13
Tomasz Grysztar wrote: For the same reason there is also no LGDT/LLDT, but - interestingly - there is LIDT. |
|||
21 Sep 2016, 05:13 |
|
Tomasz Grysztar 21 Sep 2016, 06:24
Trinitek wrote:
|
|||
21 Sep 2016, 06:24 |
|
edfed 22 Sep 2016, 09:24
ordered a D2000 arduino board, can't wait no more to develop fool for intel arduino
|
|||
22 Sep 2016, 09:24 |
|
Trinitek 22 Sep 2016, 17:45
Tomasz Grysztar wrote: Well, for example 16-bit x86 did not have LIDT and the interrupt vectors had fixed address at 0. And many microcontrollers do it similarly. Thus I think that LIDT really is a premium feature here. |
|||
22 Sep 2016, 17:45 |
|
edfed 27 Dec 2016, 21:28
first returns about the quark D2000.
1: the board finally arrived at home after 2 mounth blocked in the airport... 2: the dev kit from intel (intel studio for microcontroller) is a fork of eclipse... 540MB of download, 1.09 GB on disk. 3: the blink example is here, Code: /* * Copyright (c) 2016, Intel Corporation * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of the Intel Corporation nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL CORPORATION OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * QMSI blinky app example. * * This app will blink a LED on the development platform indefinitely. * * In order for this application to work correctly on the Intel(R) Quark(TM) * Microcontroller D2000 Development Platform, jumper J3 must be set to USR. */ #include "clk.h" #include "qm_gpio.h" #include "qm_pinmux.h" /* The following defines the pin and pin mux details for each SoC. */ #if (QUARK_SE) #define PIN_OUT 25 #define LED_PIN_ID (QM_PIN_ID_59) #elif(QUARK_D2000) #define PIN_OUT 24 #define LED_PIN_ID (QM_PIN_ID_24) #endif #define PIN_MUX_FN (QM_PMUX_FN_0) #define DELAY 250000UL /* 0.25 seconds. */ int main(void) { static qm_gpio_port_config_t cfg; /* Set the GPIO pin muxing. */ qm_pmux_select(LED_PIN_ID, PIN_MUX_FN); /* Set the GPIO pin direction to out and write the config. */ cfg.direction = BIT(PIN_OUT); qm_gpio_set_config(QM_GPIO_0, &cfg); /* Loop indefinitely while blinking the LED. */ while (1) { qm_gpio_set_pin(QM_GPIO_0, PIN_OUT); clk_sys_udelay(DELAY); qm_gpio_clear_pin(QM_GPIO_0, PIN_OUT); clk_sys_udelay(DELAY); } } 4: disassembly makes me hurt. Code: .data:00000000 55 push ebp .data:00000001 89 e5 mov ebp,esp .data:00000003 ba f4 01 28 00 mov edx,0x2801f4 .data:00000008 b8 c0 01 28 00 mov eax,0x2801c0 .data:0000000d 29 c2 sub edx,eax .data:0000000f 89 d0 mov eax,edx .data:00000011 89 c1 mov ecx,eax .data:00000013 ba 00 00 00 00 mov edx,0x0 .data:00000018 b8 c0 01 28 00 mov eax,0x2801c0 .data:0000001d e8 d8 00 00 00 call 0x000000fa .data:00000022 b8 10 00 00 00 mov eax,0x10 .data:00000027 89 c1 mov ecx,eax .data:00000029 ba e5 04 18 00 mov edx,0x1804e5 .data:0000002e b8 a0 01 28 00 mov eax,0x2801a0 .data:00000033 e8 b7 00 00 00 call 0x000000ef .data:00000038 b8 06 11 00 00 mov eax,0x1106 .data:0000003d e8 67 00 00 00 call 0x000000a9 .data:00000042 e8 03 00 00 00 call 0x0000004a .data:00000047 90 nop .data:00000048 5d pop ebp .data:00000049 c3 ret .data:0000004a 55 push ebp .data:0000004b 89 e5 mov ebp,esp .data:0000004d ba 00 00 00 00 mov edx,0x0 .data:00000052 b8 18 00 00 00 mov eax,0x18 .data:00000057 e8 f8 02 00 00 call 0x00000354 .data:0000005c c7 05 c0 01 28 00 00 00 00 01 mov DWORD PTR ds:0x2801c0,0x1000000 .data:00000066 ba c0 01 28 00 mov edx,0x2801c0 .data:0000006b b8 00 00 00 00 mov eax,0x0 .data:00000070 e8 08 01 00 00 call 0x0000017d .data:00000075 ba 18 00 00 00 mov edx,0x18 .data:0000007a b8 00 00 00 00 mov eax,0x0 .data:0000007f e8 bc 01 00 00 call 0x00000240 .data:00000084 b8 90 d0 03 00 mov eax,0x3d090 .data:00000089 e8 ad 00 00 00 call 0x0000013b .data:0000008e ba 18 00 00 00 mov edx,0x18 .data:00000093 b8 00 00 00 00 mov eax,0x0 .data:00000098 e8 02 02 00 00 call 0x0000029f .data:0000009d b8 90 d0 03 00 mov eax,0x3d090 .data:000000a2 e8 94 00 00 00 call 0x0000013b .data:000000a7 eb cc jmp 0x00000075 .data:000000a9 55 push ebp .data:000000aa 89 e5 mov ebp,esp .data:000000ac 83 ec 04 sub esp,0x4 .data:000000af 89 45 fc mov DWORD PTR [ebp-0x4],eax .data:000000b2 ba 02 00 00 00 mov edx,0x2 .data:000000b7 b8 0c 00 00 00 mov eax,0xc .data:000000bc e8 93 02 00 00 call 0x00000354 .data:000000c1 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000000c4 a3 e4 01 28 00 mov ds:0x2801e4,eax .data:000000c9 c7 05 e0 01 28 00 03 00 00 00 mov DWORD PTR ds:0x2801e0,0x3 .data:000000d3 b8 02 00 02 00 mov eax,0x20002 .data:000000d8 e8 2b 00 00 00 call 0x00000108 .data:000000dd ba e0 01 28 00 mov edx,0x2801e0 .data:000000e2 b8 00 00 00 00 mov eax,0x0 .data:000000e7 e8 1e 03 00 00 call 0x0000040a .data:000000ec 90 nop .data:000000ed c9 leave .data:000000ee c3 ret .data:000000ef 56 push esi .data:000000f0 57 push edi .data:000000f1 89 c7 mov edi,eax .data:000000f3 89 d6 mov esi,edx .data:000000f5 f3 a4 rep movs BYTE PTR es:[edi],BYTE PTR ds:[esi] .data:000000f7 5f pop edi .data:000000f8 5e pop esi .data:000000f9 c3 ret .data:000000fa 57 push edi .data:000000fb 89 c7 mov edi,eax .data:000000fd 0f b6 c2 movzx eax,dl .data:00000100 89 fa mov edx,edi .data:00000102 f3 aa rep stos BYTE PTR es:[edi],al .data:00000104 89 d0 mov eax,edx .data:00000106 5f pop edi .data:00000107 c3 ret .data:00000108 55 push ebp .data:00000109 89 e5 mov ebp,esp .data:0000010b 83 ec 04 sub esp,0x4 .data:0000010e 89 45 fc mov DWORD PTR [ebp-0x4],eax .data:00000111 81 7d fc ff ff cf 00 cmp DWORD PTR [ebp-0x4],0xcfffff .data:00000118 76 07 jbe 0x00000121 .data:0000011a b8 ea ff ff ff mov eax,0xffffffea .data:0000011f eb 18 jmp 0x00000139 .data:00000121 ba 00 00 80 b0 mov edx,0xb0800000 .data:00000126 b8 00 00 80 b0 mov eax,0xb0800000 .data:0000012b 8b 40 18 mov eax,DWORD PTR [eax+0x18] .data:0000012e 0b 45 fc or eax,DWORD PTR [ebp-0x4] .data:00000131 89 42 18 mov DWORD PTR [edx+0x18],eax .data:00000134 b8 00 00 00 00 mov eax,0x0 .data:00000139 c9 leave .data:0000013a c3 ret .data:0000013b 55 push ebp .data:0000013c 89 e5 mov ebp,esp .data:0000013e 53 push ebx .data:0000013f 83 ec 10 sub esp,0x10 .data:00000142 89 45 ec mov DWORD PTR [ebp-0x14],eax .data:00000145 a1 a0 01 28 00 mov eax,ds:0x2801a0 .data:0000014a 0f af 45 ec imul eax,DWORD PTR [ebp-0x14] .data:0000014e 89 45 f8 mov DWORD PTR [ebp-0x8],eax .data:00000151 0f 31 rdtsc .data:00000153 89 45 f0 mov DWORD PTR [ebp-0x10],eax .data:00000156 89 55 f4 mov DWORD PTR [ebp-0xc],edx .data:00000159 90 nop .data:0000015a 0f 31 rdtsc .data:0000015c 2b 45 f0 sub eax,DWORD PTR [ebp-0x10] .data:0000015f 1b 55 f4 sbb edx,DWORD PTR [ebp-0xc] .data:00000162 8b 4d f8 mov ecx,DWORD PTR [ebp-0x8] .data:00000165 bb 00 00 00 00 mov ebx,0x0 .data:0000016a 39 da cmp edx,ebx .data:0000016c 72 ec jb 0x0000015a .data:0000016e 39 da cmp edx,ebx .data:00000170 77 04 ja 0x00000176 .data:00000172 39 c8 cmp eax,ecx .data:00000174 72 e4 jb 0x0000015a .data:00000176 90 nop .data:00000177 83 c4 10 add esp,0x10 .data:0000017a 5b pop ebx .data:0000017b 5d pop ebp .data:0000017c c3 ret .data:0000017d 55 push ebp .data:0000017e 89 e5 mov ebp,esp .data:00000180 83 ec 10 sub esp,0x10 .data:00000183 89 45 f4 mov DWORD PTR [ebp-0xc],eax .data:00000186 89 55 f0 mov DWORD PTR [ebp-0x10],edx .data:00000189 83 7d f4 00 cmp DWORD PTR [ebp-0xc],0x0 .data:0000018d 74 0a je 0x00000199 .data:0000018f b8 ea ff ff ff mov eax,0xffffffea .data:00000194 e9 a5 00 00 00 jmp 0x0000023e .data:00000199 83 7d f0 00 cmp DWORD PTR [ebp-0x10],0x0 .data:0000019d 75 0a jne 0x000001a9 .data:0000019f b8 ea ff ff ff mov eax,0xffffffea .data:000001a4 e9 95 00 00 00 jmp 0x0000023e .data:000001a9 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:000001ac 8b 04 85 a4 01 28 00 mov eax,DWORD PTR [eax*4+0x2801a4] .data:000001b3 89 45 fc mov DWORD PTR [ebp-0x4],eax .data:000001b6 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000001b9 8b 40 34 mov eax,DWORD PTR [eax+0x34] .data:000001bc 89 45 f8 mov DWORD PTR [ebp-0x8],eax .data:000001bf 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000001c2 c7 40 34 ff ff ff ff mov DWORD PTR [eax+0x34],0xffffffff .data:000001c9 8b 45 f0 mov eax,DWORD PTR [ebp-0x10] .data:000001cc 8b 10 mov edx,DWORD PTR [eax] .data:000001ce 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000001d1 89 50 04 mov DWORD PTR [eax+0x4],edx .data:000001d4 8b 45 f0 mov eax,DWORD PTR [ebp-0x10] .data:000001d7 8b 50 04 mov edx,DWORD PTR [eax+0x4] .data:000001da 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000001dd 89 50 30 mov DWORD PTR [eax+0x30],edx .data:000001e0 8b 45 f0 mov eax,DWORD PTR [ebp-0x10] .data:000001e3 8b 50 08 mov edx,DWORD PTR [eax+0x8] .data:000001e6 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000001e9 89 50 38 mov DWORD PTR [eax+0x38],edx .data:000001ec 8b 45 f0 mov eax,DWORD PTR [ebp-0x10] .data:000001ef 8b 50 0c mov edx,DWORD PTR [eax+0xc] .data:000001f2 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000001f5 89 50 3c mov DWORD PTR [eax+0x3c],edx .data:000001f8 8b 45 f0 mov eax,DWORD PTR [ebp-0x10] .data:000001fb 8b 50 10 mov edx,DWORD PTR [eax+0x10] .data:000001fe 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:00000201 89 50 48 mov DWORD PTR [eax+0x48],edx .data:00000204 8b 45 f0 mov eax,DWORD PTR [ebp-0x10] .data:00000207 8b 50 14 mov edx,DWORD PTR [eax+0x14] .data:0000020a 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:0000020d 89 50 68 mov DWORD PTR [eax+0x68],edx .data:00000210 8b 45 f0 mov eax,DWORD PTR [ebp-0x10] .data:00000213 8b 50 18 mov edx,DWORD PTR [eax+0x18] .data:00000216 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:00000219 89 14 85 ec 01 28 00 mov DWORD PTR [eax*4+0x2801ec],edx .data:00000220 8b 45 f0 mov eax,DWORD PTR [ebp-0x10] .data:00000223 8b 50 1c mov edx,DWORD PTR [eax+0x1c] .data:00000226 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:00000229 89 14 85 f0 01 28 00 mov DWORD PTR [eax*4+0x2801f0],edx .data:00000230 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:00000233 8b 55 f8 mov edx,DWORD PTR [ebp-0x8] .data:00000236 89 50 34 mov DWORD PTR [eax+0x34],edx .data:00000239 b8 00 00 00 00 mov eax,0x0 .data:0000023e c9 leave .data:0000023f c3 ret .data:00000240 55 push ebp .data:00000241 89 e5 mov ebp,esp .data:00000243 56 push esi .data:00000244 53 push ebx .data:00000245 83 ec 08 sub esp,0x8 .data:00000248 89 45 f4 mov DWORD PTR [ebp-0xc],eax .data:0000024b 89 d0 mov eax,edx .data:0000024d 88 45 f0 mov BYTE PTR [ebp-0x10],al .data:00000250 83 7d f4 00 cmp DWORD PTR [ebp-0xc],0x0 .data:00000254 74 07 je 0x0000025d .data:00000256 b8 ea ff ff ff mov eax,0xffffffea .data:0000025b eb 3b jmp 0x00000298 .data:0000025d 80 7d f0 19 cmp BYTE PTR [ebp-0x10],0x19 .data:00000261 76 07 jbe 0x0000026a .data:00000263 b8 ea ff ff ff mov eax,0xffffffea .data:00000268 eb 2e jmp 0x00000298 .data:0000026a 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:0000026d 8b 04 85 a4 01 28 00 mov eax,DWORD PTR [eax*4+0x2801a4] .data:00000274 8b 55 f4 mov edx,DWORD PTR [ebp-0xc] .data:00000277 8b 14 95 a4 01 28 00 mov edx,DWORD PTR [edx*4+0x2801a4] .data:0000027e 8b 1a mov ebx,DWORD PTR [edx] .data:00000280 0f b6 55 f0 movzx edx,BYTE PTR [ebp-0x10] .data:00000284 be 01 00 00 00 mov esi,0x1 .data:00000289 88 d1 mov cl,dl .data:0000028b d3 e6 shl esi,cl .data:0000028d 89 f2 mov edx,esi .data:0000028f 09 da or edx,ebx .data:00000291 89 10 mov DWORD PTR [eax],edx .data:00000293 b8 00 00 00 00 mov eax,0x0 .data:00000298 83 c4 08 add esp,0x8 .data:0000029b 5b pop ebx .data:0000029c 5e pop esi .data:0000029d 5d pop ebp .data:0000029e c3 ret .data:0000029f 55 push ebp .data:000002a0 89 e5 mov ebp,esp .data:000002a2 56 push esi .data:000002a3 53 push ebx .data:000002a4 83 ec 08 sub esp,0x8 .data:000002a7 89 45 f4 mov DWORD PTR [ebp-0xc],eax .data:000002aa 89 d0 mov eax,edx .data:000002ac 88 45 f0 mov BYTE PTR [ebp-0x10],al .data:000002af 83 7d f4 00 cmp DWORD PTR [ebp-0xc],0x0 .data:000002b3 74 07 je 0x000002bc .data:000002b5 b8 ea ff ff ff mov eax,0xffffffea .data:000002ba eb 3d jmp 0x000002f9 .data:000002bc 80 7d f0 19 cmp BYTE PTR [ebp-0x10],0x19 .data:000002c0 76 07 jbe 0x000002c9 .data:000002c2 b8 ea ff ff ff mov eax,0xffffffea .data:000002c7 eb 30 jmp 0x000002f9 .data:000002c9 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:000002cc 8b 04 85 a4 01 28 00 mov eax,DWORD PTR [eax*4+0x2801a4] .data:000002d3 8b 55 f4 mov edx,DWORD PTR [ebp-0xc] .data:000002d6 8b 14 95 a4 01 28 00 mov edx,DWORD PTR [edx*4+0x2801a4] .data:000002dd 8b 1a mov ebx,DWORD PTR [edx] .data:000002df 0f b6 55 f0 movzx edx,BYTE PTR [ebp-0x10] .data:000002e3 be 01 00 00 00 mov esi,0x1 .data:000002e8 88 d1 mov cl,dl .data:000002ea d3 e6 shl esi,cl .data:000002ec 89 f2 mov edx,esi .data:000002ee f7 d2 not edx .data:000002f0 21 da and edx,ebx .data:000002f2 89 10 mov DWORD PTR [eax],edx .data:000002f4 b8 00 00 00 00 mov eax,0x0 .data:000002f9 83 c4 08 add esp,0x8 .data:000002fc 5b pop ebx .data:000002fd 5e pop esi .data:000002fe 5d pop ebp .data:000002ff c3 ret .data:00000300 55 push ebp .data:00000301 89 e5 mov ebp,esp .data:00000303 83 ec 08 sub esp,0x8 .data:00000306 89 45 fc mov DWORD PTR [ebp-0x4],eax .data:00000309 89 55 f8 mov DWORD PTR [ebp-0x8],edx .data:0000030c b8 20 00 00 00 mov eax,0x20 .data:00000311 ba 00 00 00 00 mov edx,0x0 .data:00000316 f7 75 f8 div DWORD PTR [ebp-0x8] .data:00000319 89 c1 mov ecx,eax .data:0000031b 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:0000031e ba 00 00 00 00 mov edx,0x0 .data:00000323 f7 f1 div ecx .data:00000325 c9 leave .data:00000326 c3 ret .data:00000327 55 push ebp .data:00000328 89 e5 mov ebp,esp .data:0000032a 83 ec 08 sub esp,0x8 .data:0000032d 89 45 fc mov DWORD PTR [ebp-0x4],eax .data:00000330 89 55 f8 mov DWORD PTR [ebp-0x8],edx .data:00000333 b8 20 00 00 00 mov eax,0x20 .data:00000338 ba 00 00 00 00 mov edx,0x0 .data:0000033d f7 75 f8 div DWORD PTR [ebp-0x8] .data:00000340 89 c1 mov ecx,eax .data:00000342 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:00000345 ba 00 00 00 00 mov edx,0x0 .data:0000034a f7 f1 div ecx .data:0000034c 89 d0 mov eax,edx .data:0000034e 0f af 45 f8 imul eax,DWORD PTR [ebp-0x8] .data:00000352 c9 leave .data:00000353 c3 ret .data:00000354 55 push ebp .data:00000355 89 e5 mov ebp,esp .data:00000357 56 push esi .data:00000358 53 push ebx .data:00000359 83 ec 10 sub esp,0x10 .data:0000035c 89 45 ec mov DWORD PTR [ebp-0x14],eax .data:0000035f 89 55 e8 mov DWORD PTR [ebp-0x18],edx .data:00000362 83 7d ec 18 cmp DWORD PTR [ebp-0x14],0x18 .data:00000366 76 0a jbe 0x00000372 .data:00000368 b8 ea ff ff ff mov eax,0xffffffea .data:0000036d e9 91 00 00 00 jmp 0x00000403 .data:00000372 83 7d e8 03 cmp DWORD PTR [ebp-0x18],0x3 .data:00000376 76 0a jbe 0x00000382 .data:00000378 b8 ea ff ff ff mov eax,0xffffffea .data:0000037d e9 81 00 00 00 jmp 0x00000403 .data:00000382 8b 45 ec mov eax,DWORD PTR [ebp-0x14] .data:00000385 ba 02 00 00 00 mov edx,0x2 .data:0000038a e8 71 ff ff ff call 0x00000300 .data:0000038f 89 45 f4 mov DWORD PTR [ebp-0xc],eax .data:00000392 8b 45 ec mov eax,DWORD PTR [ebp-0x14] .data:00000395 ba 02 00 00 00 mov edx,0x2 .data:0000039a e8 88 ff ff ff call 0x00000327 .data:0000039f 89 45 f0 mov DWORD PTR [ebp-0x10],eax .data:000003a2 ba 00 09 80 b0 mov edx,0xb0800900 .data:000003a7 b8 00 09 80 b0 mov eax,0xb0800900 .data:000003ac 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] .data:000003af 83 c1 0c add ecx,0xc .data:000003b2 8b 1c 88 mov ebx,DWORD PTR [eax+ecx*4] .data:000003b5 8b 45 f0 mov eax,DWORD PTR [ebp-0x10] .data:000003b8 be 03 00 00 00 mov esi,0x3 .data:000003bd 88 c1 mov cl,al .data:000003bf d3 e6 shl esi,cl .data:000003c1 89 f0 mov eax,esi .data:000003c3 f7 d0 not eax .data:000003c5 21 c3 and ebx,eax .data:000003c7 89 d9 mov ecx,ebx .data:000003c9 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:000003cc 83 c0 0c add eax,0xc .data:000003cf 89 0c 82 mov DWORD PTR [edx+eax*4],ecx .data:000003d2 ba 00 09 80 b0 mov edx,0xb0800900 .data:000003d7 b8 00 09 80 b0 mov eax,0xb0800900 .data:000003dc 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] .data:000003df 83 c1 0c add ecx,0xc .data:000003e2 8b 1c 88 mov ebx,DWORD PTR [eax+ecx*4] .data:000003e5 8b 45 f0 mov eax,DWORD PTR [ebp-0x10] .data:000003e8 8b 75 e8 mov esi,DWORD PTR [ebp-0x18] .data:000003eb 88 c1 mov cl,al .data:000003ed d3 e6 shl esi,cl .data:000003ef 89 f0 mov eax,esi .data:000003f1 09 c3 or ebx,eax .data:000003f3 89 d9 mov ecx,ebx .data:000003f5 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:000003f8 83 c0 0c add eax,0xc .data:000003fb 89 0c 82 mov DWORD PTR [edx+eax*4],ecx .data:000003fe b8 00 00 00 00 mov eax,0x0 .data:00000403 83 c4 10 add esp,0x10 .data:00000406 5b pop ebx .data:00000407 5e pop esi .data:00000408 5d pop ebp .data:00000409 c3 ret .data:0000040a 55 push ebp .data:0000040b 89 e5 mov ebp,esp .data:0000040d 83 ec 0c sub esp,0xc .data:00000410 89 45 f8 mov DWORD PTR [ebp-0x8],eax .data:00000413 89 55 f4 mov DWORD PTR [ebp-0xc],edx .data:00000416 83 7d f8 01 cmp DWORD PTR [ebp-0x8],0x1 .data:0000041a 76 0a jbe 0x00000426 .data:0000041c b8 ea ff ff ff mov eax,0xffffffea .data:00000421 e9 bd 00 00 00 jmp 0x000004e3 .data:00000426 83 7d f4 00 cmp DWORD PTR [ebp-0xc],0x0 .data:0000042a 75 0a jne 0x00000436 .data:0000042c b8 ea ff ff ff mov eax,0xffffffea .data:00000431 e9 ad 00 00 00 jmp 0x000004e3 .data:00000436 8b 45 f8 mov eax,DWORD PTR [ebp-0x8] .data:00000439 8b 04 85 a8 01 28 00 mov eax,DWORD PTR [eax*4+0x2801a8] .data:00000440 89 45 fc mov DWORD PTR [ebp-0x4],eax .data:00000443 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:00000446 c7 40 0c 00 00 00 00 mov DWORD PTR [eax+0xc],0x0 .data:0000044d 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:00000450 c7 40 0c 80 00 00 00 mov DWORD PTR [eax+0xc],0x80 .data:00000457 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:0000045a 8b 40 04 mov eax,DWORD PTR [eax+0x4] .data:0000045d 25 00 00 ff 00 and eax,0xff0000 .data:00000462 c1 e8 10 shr eax,0x10 .data:00000465 89 c2 mov edx,eax .data:00000467 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:0000046a 89 50 04 mov DWORD PTR [eax+0x4],edx .data:0000046d 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:00000470 8b 40 04 mov eax,DWORD PTR [eax+0x4] .data:00000473 25 00 ff 00 00 and eax,0xff00 .data:00000478 c1 e8 08 shr eax,0x8 .data:0000047b 89 c2 mov edx,eax .data:0000047d 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:00000480 89 10 mov DWORD PTR [eax],edx .data:00000482 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:00000485 8b 40 04 mov eax,DWORD PTR [eax+0x4] .data:00000488 0f b6 d0 movzx edx,al .data:0000048b 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:0000048e 89 90 c0 00 00 00 mov DWORD PTR [eax+0xc0],edx .data:00000494 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:00000497 8b 10 mov edx,DWORD PTR [eax] .data:00000499 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:0000049c 89 50 0c mov DWORD PTR [eax+0xc],edx .data:0000049f 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000004a2 c7 40 10 00 00 00 00 mov DWORD PTR [eax+0x10],0x0 .data:000004a9 8b 45 f4 mov eax,DWORD PTR [ebp-0xc] .data:000004ac 8a 40 08 mov al,BYTE PTR [eax+0x8] .data:000004af 84 c0 test al,al .data:000004b1 74 11 je 0x000004c4 .data:000004b3 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000004b6 8b 40 10 mov eax,DWORD PTR [eax+0x10] .data:000004b9 83 c8 22 or eax,0x22 .data:000004bc 89 c2 mov edx,eax .data:000004be 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000004c1 89 50 10 mov DWORD PTR [eax+0x10],edx .data:000004c4 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000004c7 c7 40 08 b7 00 00 00 mov DWORD PTR [eax+0x8],0xb7 .data:000004ce 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000004d1 8b 40 04 mov eax,DWORD PTR [eax+0x4] .data:000004d4 0c 80 or al,0x80 .data:000004d6 89 c2 mov edx,eax .data:000004d8 8b 45 fc mov eax,DWORD PTR [ebp-0x4] .data:000004db 89 50 04 mov DWORD PTR [eax+0x4],edx .data:000004de b8 00 00 00 00 mov eax,0x0 .data:000004e3 c9 leave .data:000004e4 c3 ret .data:000004e5 20 00 and BYTE PTR [eax],al .data:000004e7 00 00 add BYTE PTR [eax],al .data:000004e9 00 0c 00 add BYTE PTR [eax+eax*1],cl .data:000004ec b0 00 mov al,0x0 .data:000004ee 20 00 and BYTE PTR [eax],al .data:000004f0 b0 00 mov al,0x0 .data:000004f2 24 00 and al,0x0 .data:000004f4 b0 .byte 0xb0 |
|||
27 Dec 2016, 21:28 |
|
Goto page 1, 2 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.