Created
September 11, 2015 06:10
-
-
Save Catalyse/1a25124d3bdf17076096 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
00400F73 add byte ptr [eax],al | |
00400F75 add byte ptr [eax],al | |
00400F77 add byte ptr [eax],al | |
00400F79 add byte ptr [eax],al | |
00400F7B add byte ptr [eax],al | |
00400F7D add byte ptr [eax],al | |
00400F7F add byte ptr [eax],al | |
00400F81 add byte ptr [eax],al | |
00400F83 add byte ptr [eax],al | |
00400F85 add byte ptr [eax],al | |
00400F87 add byte ptr [eax],al | |
00400F89 add byte ptr [eax],al | |
00400F8B add byte ptr [eax],al | |
00400F8D add byte ptr [eax],al | |
00400F8F add byte ptr [eax],al | |
00400F91 add byte ptr [eax],al | |
00400F93 add byte ptr [eax],al | |
00400F95 add byte ptr [eax],al | |
00400F97 add byte ptr [eax],al | |
00400F99 add byte ptr [eax],al | |
00400F9B add byte ptr [eax],al | |
00400F9D add byte ptr [eax],al | |
00400F9F add byte ptr [eax],al | |
00400FA1 add byte ptr [eax],al | |
00400FA3 add byte ptr [eax],al | |
00400FA5 add byte ptr [eax],al | |
00400FA7 add byte ptr [eax],al | |
00400FA9 add byte ptr [eax],al | |
00400FAB add byte ptr [eax],al | |
00400FAD add byte ptr [eax],al | |
00400FAF add byte ptr [eax],al | |
00400FB1 add byte ptr [eax],al | |
00400FB3 add byte ptr [eax],al | |
00400FB5 add byte ptr [eax],al | |
00400FB7 add byte ptr [eax],al | |
00400FB9 add byte ptr [eax],al | |
00400FBB add byte ptr [eax],al | |
00400FBD add byte ptr [eax],al | |
00400FBF add byte ptr [eax],al | |
00400FC1 add byte ptr [eax],al | |
00400FC3 add byte ptr [eax],al | |
00400FC5 add byte ptr [eax],al | |
00400FC7 add byte ptr [eax],al | |
00400FC9 add byte ptr [eax],al | |
00400FCB add byte ptr [eax],al | |
00400FCD add byte ptr [eax],al | |
00400FCF add byte ptr [eax],al | |
00400FD1 add byte ptr [eax],al | |
00400FD3 add byte ptr [eax],al | |
00400FD5 add byte ptr [eax],al | |
00400FD7 add byte ptr [eax],al | |
00400FD9 add byte ptr [eax],al | |
00400FDB add byte ptr [eax],al | |
00400FDD add byte ptr [eax],al | |
00400FDF add byte ptr [eax],al | |
00400FE1 add byte ptr [eax],al | |
00400FE3 add byte ptr [eax],al | |
00400FE5 add byte ptr [eax],al | |
00400FE7 add byte ptr [eax],al | |
00400FE9 add byte ptr [eax],al | |
00400FEB add byte ptr [eax],al | |
00400FED add byte ptr [eax],al | |
00400FEF add byte ptr [eax],al | |
00400FF1 add byte ptr [eax],al | |
00400FF3 add byte ptr [eax],al | |
00400FF5 add byte ptr [eax],al | |
00400FF7 add byte ptr [eax],al | |
00400FF9 add byte ptr [eax],al | |
00400FFB add byte ptr [eax],al | |
00400FFD add byte ptr [eax],al | |
00400FFF add ah,cl | |
00401001 int 3 | |
00401002 int 3 | |
00401003 int 3 | |
00401004 int 3 | |
_main@0: | |
00401005 jmp main (0401010h) | |
0040100A int 3 | |
0040100B int 3 | |
0040100C int 3 | |
0040100D int 3 | |
0040100E int 3 | |
0040100F int 3 | |
--- X:\Desktop\pa2.asm --------------------------------------------------------- | |
;//Part 1 // When you said one statement I could only assume this is what you meant HOWEVER, | |
;// if you wanted literally one line I would have had to do it above the data declaration like I did in part 3 | |
;//Yes I know I dont need a semi colon at the end but it makes me feel better about myself. (And visual studio does the spacing right) // | |
mov eax,0; | |
00401010 mov eax,0 | |
mov ebx,0; | |
00401015 mov ebx,0 | |
mov al, valA; | |
0040101A mov al,byte ptr ds:[00405000h] | |
mov bl, [valA+1];//I used an array just for funzies. :D | |
0040101F mov bl,byte ptr ds:[405001h] | |
mul bl; | |
00401025 mul al,bl | |
mov bl, [valA+2];//Yeah thats right I said funzies. | |
00401027 mov bl,byte ptr ds:[405002h] | |
mul bl; | |
0040102D mul al,bl | |
mov bl, [valA+3];//Its okay if you're jelly that you didnt think of it first. | |
0040102F mov bl,byte ptr ds:[405003h] | |
mul bl;//This causes overflow, with the answer being 168, but what is moved to valAnswer after storage in AL is just 68 // | |
00401035 mul al,bl | |
mov valAnswer, al; | |
00401037 mov byte ptr ds:[00405004h],al | |
call DumpRegs; | |
0040103C call _DumpRegs@0 (0401254h) | |
;//In the event that I was only supposed to use EQU up top and not use the mul directive: | |
mov ax, PART1EVAL; //I couldnt store directly into al because of a size mismatch (168 is larger than 8 bits!) | |
00401041 mov ax,168h | |
call DumpRegs; | |
00401045 call _DumpRegs@0 (0401254h) | |
;//End Part 1 // | |
;//Part 2 // | |
CLC;//Clear carry bit EFL A46 or 0000 0000 0000 0000 0000 1010 0100 0110 // | |
0040104A clc | |
mov eax,0; | |
0040104B mov eax,0 | |
mov ax,0ffffh; | |
00401050 mov ax,0FFFFh | |
inc ax;//Overflow// EFL 256 or 0000 0000 0000 0000 0000 0010 0101 0110 overflow bit thrown (0) (bit 11), Adjust bit thrown (bit 4) // | |
00401054 inc ax | |
call DumpRegs; | |
00401056 call _DumpRegs@0 (0401254h) | |
mov ax,0; | |
0040105B mov ax,0 | |
dec ax;//Underflow// EFL 296 or 0000 0000 0000 0000 0000 0010 1001 0110 zero flow thrown (bit 6), sign flag thrown (bit 7) // | |
0040105F dec ax | |
call DumpRegs; | |
00401061 call _DumpRegs@0 (0401254h) | |
;//End part two, that was easy! | |
;//Part 3 // | |
mov ebx,0; | |
00401066 mov ebx,0 | |
mov ebx,SECONDS_IN_DAY; | |
0040106B mov ebx,15180h | |
call DumpRegs; | |
00401070 call _DumpRegs@0 (0401254h) | |
;//Results in EBX containing 00015180h OR 86400 in decimal. | |
;//End Part 3// | |
exit | |
00401075 push 0 | |
00401077 call _ExitProcess@4 (0402064h) | |
--- No source file ------------------------------------------------------------- | |
0040107C int 3 | |
0040107D int 3 | |
0040107E int 3 | |
0040107F int 3 | |
00401080 int 3 | |
00401081 int 3 | |
00401082 int 3 | |
00401083 int 3 | |
00401084 int 3 | |
00401085 int 3 | |
00401086 int 3 | |
00401087 int 3 | |
00401088 int 3 | |
00401089 int 3 | |
0040108A int 3 | |
0040108B int 3 | |
0040108C int 3 | |
0040108D int 3 | |
0040108E int 3 | |
0040108F int 3 | |
_CloseFile@0: | |
00401090 push eax | |
00401091 call _CloseHandle@4 (040206Ah) | |
00401096 ret | |
_Clrscr@0: | |
00401097 push ebp | |
00401098 mov ebp,esp | |
0040109A add esp,0FFFFFFE8h | |
0040109D pushad | |
0040109E cmp byte ptr ds:[405010h],0 | |
004010A5 jne _Clrscr@0+15h (04010ACh) | |
004010A7 call _Gotoxy@0+36h (04015ABh) | |
004010AC lea eax,[ebp-16h] | |
004010AF push eax | |
004010B0 push dword ptr ds:[405B44h] | |
004010B6 call _GetConsoleScreenBufferInfo@8 (040208Eh) | |
004010BB mov ax,word ptr [ebp-16h] | |
004010BF mov word ptr ds:[00405621h],ax | |
004010C5 cmp dword ptr ds:[405621h],200h | |
004010CF jbe _Clrscr@0+44h (04010DBh) | |
004010D1 mov dword ptr ds:[405621h],200h | |
004010DB mov ax,word ptr [ebp-0Eh] | |
004010DF mov ecx,dword ptr ds:[405621h] | |
004010E5 mov edi,405221h | |
004010EA rep stos word ptr es:[edi] | |
004010ED movzx ecx,word ptr [ebp-14h] | |
004010F1 push ecx | |
004010F2 push 405629h | |
004010F7 push dword ptr ds:[405625h] | |
004010FD push dword ptr ds:[405621h] | |
00401103 push 405021h | |
00401108 push dword ptr ds:[405B44h] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment