|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On May 24 2013 10:37 phar wrote: oh jesus my x86 is rusty
mov eax, 56111 // sticks 56111 into the 4 bytes of eax (? is it 4 or 8? fuck if I know, we're going with 4 byte registers woo) mul eax // multiplies ? by eax, puts result into edx:eax... so is that 56111^2? I think no second arg means by itself here, not sure. mov edx,0 // puts 0 into edx, so this means we get the 16 least significant bits of 56111^2... 29345 ? div x // dword 100 is 4 bytes, so we're taking dividend/divisor (edx:eax is dividend, which recall is 29345, x is divisor, which is 100), result goes into eax and remainder goes into edx (or switch around?) 29345 / 100 = 293 remainder 45
so that sticks 293 in eax and 45 in edx mov edx, 0 // zeroes out edx again div y // same deal, except dividnig by something bigger than 293, so we get eax = 0, edx = 293. mov eax, edx // intel backwards notation, moves edx into eax, so we end up with 293.
OR MAYBE THAT'S COMPLETE BULLSHIT I DUNNO LOL
Ooo someone asks a question very few people know about, but that I do. Somebody probably gave an adequate answer by now, but I'll be damned if I don't myself.
eax is 4 bytes. The "e" indicates it is the "extended" version of the 2-byte ax register. You can also address the lower and upper bytes of ax with the names al and ah. On x64 architecture, rax is the 8byte "version" of eax (eax lives in the bottom 4bytes of rax).
BTW, for the rest of this, the notation "edx:eax" means to take the 32-bits from edx, the 32-bits from eax, and mash them together into one big 64-bit value (with eax being the bottom 32-bits).
mul doesn't take a second argument, it is always eax:edx <-- eax*src (assuming src refers to a dword register or memory operand size). The result of this multiply is eax:edx <-- 56111*56111 = 3148444321
mov edx, 0 is clearing the top 32 bits of previous multiply, leaving the bottom 32-bits (which are in eax) intact. It is essentially doing edx:eax <-- edx:eax % (2^32). However, the top 32-bits from this multiply are 0 anyway (56111^2 < 2^32), so for the purposes of this exercise, this does nothing.
A dword-sized div takes edx:eax, divides by the single src value, so it does 3148444321 / 100. It puts the quotient in eax and the remainder into edx. So in this case the result is eax <-- 31484443 and edx <-- 21. We immediately clear edx afterword with the mov, so we are discarding the remainder and preparing for the next div.
Another div, so it is just 31484443 / 10000. The result is eax <-- 3148 and edx <-- 4443.
The final mov puts remainder from the last div (edx) into eax. So the result is eax <-- 4443. Therefore, eax contains 4443 at the end.
|
On May 24 2013 16:57 Terranist wrote:Show nested quote +On May 24 2013 11:27 Abductedonut wrote:On May 24 2013 09:14 Terranist wrote:if anyone could help me with this small snippet of assembly i would be grateful. + Show Spoiler +x dword 100 y dword 10000 mov eax, 56111 mul eax; mov edx,0 div x mov edx,0 div y mov eax, edx
; What number does the resulting eax contain? To the poster above: Close but not quite... mov eax, 56111 ; Puts 56111 into EAX (which is 32-bits... 64-bit would be RAX) mul eax ; Multiplies EAX by EAX - Result is 3,148,444,321 and stored in EAX mov edx,0 ; shouldn't need to explain this div x ; Divides EAX by x, puts the remainder in EDX ( EAX = 31,484,443 EDX = 21) mov edx,0 ; div y ; Divides 31,484,443 by 10000, stores remainder in EDX (EAX = 3148 EDX = 4443) mov eax,edx ; Puts EDX into EAX (EAX = 4443)
<3 ASM thanks for the comments i see it now. learning ASM but i was not sure if mul eax with a large integer like that would create a signed or unsigned number.
imul is signed multiply, mul is unsigned multiply.
|
Seeing this Assembly reminds me of 1st year at university, and I'm finishing 2nd now. Assembly is definitely a language I'll never ever want to encounter again. So low level it hurts.
|
I worked with assembly in 16 bit pics so much my brain can't handle 32 bit registers. It's like any time I get a value > 65535 I mentally split it across two registers.
Good thing I now work with Java for a living, rofl.
|
@phar, is earning a lot from Java? Or is C++ the way to go for a living? I still haven't gone any route, but I'm comfortable with Java because it is easier. I guess I can try C++ anyway.
|
On May 28 2013 00:19 darkness wrote: Seeing this Assembly reminds me of 1st year at university, and I'm finishing 2nd now. Assembly is definitely a language I'll never ever want to encounter again. So low level it hurts.
i had the opposite feeling, it was so low level it felt good!
|
On May 28 2013 06:09 darkness wrote: @phar, is earning a lot from Java? Or is C++ the way to go for a living? I still haven't gone any route, but I'm comfortable with Java because it is easier. I guess I can try C++ anyway. I think we've covered this before man. There are high and low paying jobs for both C++ and Java (and a plethora of other languages). Don't sweat which specific language you're learning right now - most of the skills are transferable. You can pick up new languages really easily after you know the general concepts.
|
On May 28 2013 06:16 phar wrote:Show nested quote +On May 28 2013 06:09 darkness wrote: @phar, is earning a lot from Java? Or is C++ the way to go for a living? I still haven't gone any route, but I'm comfortable with Java because it is easier. I guess I can try C++ anyway. I think we've covered this before man. There are high and low paying jobs for both C++ and Java (and a plethora of other languages). Don't sweat which specific language you're learning right now - most of the skills are transferable. You can pick up new languages really easily after you know the general concepts.
Alright, thanks.
On May 28 2013 06:11 Roe wrote:Show nested quote +On May 28 2013 00:19 darkness wrote: Seeing this Assembly reminds me of 1st year at university, and I'm finishing 2nd now. Assembly is definitely a language I'll never ever want to encounter again. So low level it hurts. i had the opposite feeling, it was so low level it felt good!
The only enjoyable lowest level stuff for me is malloc and free in C so far. ^^
|
What you said is in the spoiler, for comparison. + Show Spoiler +@implementation currentViewController { // Hold a reference to the child view controller so it's not lost as soon as it's presented nextViewController _nextViewController; }
// Let's navigate to the next view controller - (void)userDidSomething {
// Create an instance of my next view controller _nextViewController = [[nextViewController alloc] init];
// Display my next view controller [self.navigationController pushViewController:_nextViewController animated:YES]; }
I did what you said, XCode told me to replace currentViewController or nextViewController with UIViewController in some cases due to errors, and I ended up with this:
@implementation currentViewController {
// Hold a reference to the child view controller so it's not lost as soon as it's presented
UIViewController *_nextViewController;
}
// Let's navigate to the next view controller
- (void)userDidSomething {
// Create an instance of my next view controller
_nextViewController = [[UIViewController alloc] init];
then I get an error for the next line of code which states "Property 'navigationController' not found on object of type currentViewController *'
// Display my next view controller
[self.navigationController pushViewController:_nextViewController animated:YES];
}
@end
Any ideas why this is happening or what I should do instead?
|
If you haven't subclassed the nextViewController, then yes you'll have to declare it as an instance of UIViewController, rather than an instance of a custom subclass. That change you did looks good.
The only reason I can think of as to why it's telling you self.navigationController is not a valid property of currentViewController is that currentViewController is not a subclass of UIViewController. All UIViewControllers and subclasses of UIViewController should have that property. You must be putting this code in some other place rather than a subclass of UIViewController.
Edit: I created an iPad example in github so you can see how it works: https://github.com/ctangen/ViewControllerTransition
|
On May 24 2013 10:37 phar wrote: oh jesus my x86 is rusty
...
OR MAYBE THAT'S COMPLETE BULLSHIT I DUNNO LOL
LOL everytime i read that i laugh
|
On May 28 2013 06:11 Roe wrote:Show nested quote +On May 28 2013 00:19 darkness wrote: Seeing this Assembly reminds me of 1st year at university, and I'm finishing 2nd now. Assembly is definitely a language I'll never ever want to encounter again. So low level it hurts. i had the opposite feeling, it was so low level it felt good! Consider a career in analyzing computer viruses and malware
|
On May 29 2013 05:20 enigmaticcam wrote:If you haven't subclassed the nextViewController, then yes you'll have to declare it as an instance of UIViewController, rather than an instance of a custom subclass. That change you did looks good. The only reason I can think of as to why it's telling you self.navigationController is not a valid property of currentViewController is that currentViewController is not a subclass of UIViewController. All UIViewControllers and subclasses of UIViewController should have that property. You must be putting this code in some other place rather than a subclass of UIViewController. Edit: I created an iPad example in github so you can see how it works: https://github.com/ctangen/ViewControllerTransition Thanks! I'll try it out again today. Hopefully your example will help me 
@Blisse I laugh every time too
|
Does anyone have any tips on the designing of a game using a UML diagram? I have to design an implementation of Puerto Rico (quite complex but fun game), but while in class our professor keeps empathizing the importance of a good design, I feel like we really haven't been told how to begin.
I've made easier diagrams before (simple card games, chess) but this game has so much going on I don't really know where to start.
|
Just start with splitting the game into components (very big one in the beginning) and don't go into specifics. As soon as you can't split anymore go back reiterate the whole design and then start specifying the details in the components (i.e. a diagram that specifies how a card should be played). If at any point while doing the physical model you find that the "implementation" doesn't fit the initial component idea, update the initial idea go to the initial component model and reiterate over it again. Repeat until you have a detailed model of the whole application.
|
Also don't worry about the specifics of UML too much. You may have to get that shit right for class, but out in the real world there's a good chance your designs are not going to be religiously following something like UML.
|
On May 29 2013 20:14 3FFA wrote:Show nested quote +On May 29 2013 05:20 enigmaticcam wrote:If you haven't subclassed the nextViewController, then yes you'll have to declare it as an instance of UIViewController, rather than an instance of a custom subclass. That change you did looks good. The only reason I can think of as to why it's telling you self.navigationController is not a valid property of currentViewController is that currentViewController is not a subclass of UIViewController. All UIViewControllers and subclasses of UIViewController should have that property. You must be putting this code in some other place rather than a subclass of UIViewController. Edit: I created an iPad example in github so you can see how it works: https://github.com/ctangen/ViewControllerTransition Thanks! I'll try it out again today. Hopefully your example will help me  @Blisse I laugh every time too 
Tried it out, was able to figure out how to get it to work! Thanks! 
Still lost on how to set up a button to go to the next slide though ._. [makes me feel stupid cause it seems like it should be obvious]
|
On May 30 2013 04:18 3FFA wrote:Show nested quote +On May 29 2013 20:14 3FFA wrote:On May 29 2013 05:20 enigmaticcam wrote:If you haven't subclassed the nextViewController, then yes you'll have to declare it as an instance of UIViewController, rather than an instance of a custom subclass. That change you did looks good. The only reason I can think of as to why it's telling you self.navigationController is not a valid property of currentViewController is that currentViewController is not a subclass of UIViewController. All UIViewControllers and subclasses of UIViewController should have that property. You must be putting this code in some other place rather than a subclass of UIViewController. Edit: I created an iPad example in github so you can see how it works: https://github.com/ctangen/ViewControllerTransition Thanks! I'll try it out again today. Hopefully your example will help me  @Blisse I laugh every time too  Tried it out, was able to figure out how to get it to work! Thanks!  Still lost on how to set up a button to go to the next slide though ._. [makes me feel stupid cause it seems like it should be obvious] Glad I can help If you ever need any help with anything iOS related, I'd be happy to help again.
If you get a chance to check out that example iPad application I posted, it should help you figure that last bit out. On the view load, I add a button to the navigation bar that calls another function that does the actual push.
|
I did. Just ran it.... says it can't load the simulator because of the version for some reason. =/
|
Hi! I just recently started programming in C++ and my first real project is porting a thing I did in C# that draws L-Systems (basically fractals used for procedural generation of plants for example). I'm using SFML for drawing the things I need. It works fine, but my concern is that it uses up a lot more memory than I feel it should. The C# version of the program uses about 10 MB of RAM when I first start it up, and the C++ version uses 33 MB. (the C# version uses Windows Forms and the C++ version is just a raw window) I know this isn't a very smart comparison, but I still feel it's off. When I start increasing the number of iterations for some of the L-Systems, it very quickly rises to about 200 MB or more. It's not really a performance concern for me right now but I'd be interested in why there is so much memory being used.
What I'm looking for is methods on how to find where all that memory is going. I'm using VS2012 and the built-in profiler only has support for .NET-managed memory.
I've put the code on GitHub if someone feels like taking a look.
|
|
|
|