Assembly Guy 72 Posting Whiz

1) Add '$'s (or whatever currency symbol) in front of your prices that don't already have them
2) The green text 'Your Food. Your Way.' can be a bit hard to read - maybe add subtle text shadowing or change the parent container's background colour to ease the contrast.
3) As for deals.html, it's saying 'Not populated'. I see you've put a message explaining it, but it's not a good look for a business - perhaps temporarily remove the link on the menu bar to this page until it has content on it
4) You open your <html> tag twice:

<html xmlns="http://www.w3.org/1999/xhtml">
<html>

You should only have one or the other, not both

5) On the delivery page, try not to use centered text for more than single-line things like titles or slogans - it can make the reader's eye not follow the text as easily, because when they reach the end of a line, they cannot locate the beginning of the next line because it can be anywhere instead of being on the left margin. Try left align or justify

Other than that (and what mrvijayakumar has said), it looks nice. If I'm ever in Canada, I'll be sure to drop in and have a feast! :)

Assembly Guy 72 Posting Whiz
Zahid_5 commented: nice +0
Assembly Guy 72 Posting Whiz

I am unsure of what you mean, I don't understand how I would implement xor edx, edx. Would I place that in before of the idiv instruction, after, or am I way off?

It must be before the div or idiv instruction. Imagine that before you called a div, but EDX had a value in it that was put there from a previous piece of code:

; EDX might equal, say, 0x00003EF1 because of previous code
mov eax, 0xE0F253DC
div 0x10

DIV would divide EDX:EAX (0x00003EF1E0F253DC) by 0x10 instead of only dividing EAX. To fix this, you'd zero-out EDX before doing the division, but after any instruction that modifies it. It's safest to zero it out right before it's needed to be zero, so in this case, right before your div. With EDX zeroed-out, div would be dividing by 0x00000000E0F253DC, which is what we wanted in that example.

Also what about 64 bit stuff?... I'm just curious how that would work because I understand 8/16/32 bit division (conceptually ... obviously not practically) about what you said, however; how does 64 bit work?

64-bit stuff... That's a good question. I don't have a 64-bit system but I'm damned sure it'd divide the 128-bit value RDX:RAX by your operand.

In the division section of the code, I am still trying to grasp the basic concept of why this actually works, I understand the whole thing about working with different bit registers, however; why do I have …

Assembly Guy 72 Posting Whiz

Why in binary addition, does 1 + 1 equal 0 with a carry and not 1 with a carry?

    1
+   1
-----
   10

When we add 1 and 1 in binary, we encounter and overflow situation which is just fancy shmancy talk for needing to have more digits to represent any larger values. It's a bit like adding 1 and 9 in decimal: we have to overflow into the tens column, thus giving the result of 10. Our result is 0 and we have to carry the one.

The same principle applies in binary, except that we don't count up to 9 and then overflow into the 10s column. Instead, we overflow into the twos column, then after we've reached 11, we overflow into the 4s column and so on.

So 1 + 1 = carry & 1 simply because 1 + 1 = 10. Does that explain it? :)

pbj.codez commented: Thanks dude. +0
Assembly Guy 72 Posting Whiz

In pseudo code terms, what you're doing is:

EAX = 4
EBX = 1
ECX = Location of string 1
ECX = Location of string 2
EDX = Length of string 1
EDX = Length of string 2
SYSTEM CALL

So you're setting ECX and EDX to certain values, then overwriting them with other values. This means that when int 0x80 is invoked, ECX points to the location of string2 and EDX points to the length of string2. You need a separate system call for each individual string you'll be printing.

Please also note that you've defined the length of string1 as being 12. This means that when you print it, it'll print the characters "Howdy Folks!" but not the 0Ah which follows. 0Ah is the charcter to print a new line on Linux/UNIX. You've also made the same mistake with string2.

Also, are my comments appropriate with how the line actually functions?

Your comments look pretty much fine, with the exception of the following line

mov ecx, string ;creates address for my string variable

It doesn't create the address as such, it just moves the address that string represents into ECX. When you assemble your code, the assembler works out the memory address that the labels in your program (start, string, string2, etc.) will end up at when it runs. It then replaces any occurence of this label with that address. So with the above line of code, it moves the address of your string …

pbj.codez commented: Thank You, I appreciate your time. You and Schol-R-LEA definitely helped me out. This shall be the first of many questions on my Assembly programming journey. Thank You +0
Assembly Guy 72 Posting Whiz

If you want to be sure the sun has died before your encryption can be broken, that's just a few bits more.

There's always a chance their first attempt will be correct. It's small, but it's always there, so you can't quite be 100% sure that the sun will have died.

Assembly Guy 72 Posting Whiz

assembly language depends ENTIRELY upon the target processor

Should have given some sample code in a really rare, obscure dialect just for fun ;)

Assembly Guy 72 Posting Whiz

My first girlfriend is my first girlfriend's best friend.

Reminds me a bit of "this statement is false"... or was she just lonely? Or did you date two girls who were best friends with each other?

Assembly Guy 72 Posting Whiz

I just noticed that Perl and Python are under the Software Development category, but not Web Development, while Ruby is under Web Dev and not under Software Dev category. Don't get me wrong, they do belong where they currently rest, but perhaps a link to Perl, Python and Ruby could be put under both Web Dev and Software Dev; Perl and Python are still widely used for Web Dev, and I was thinking that maybe someone may go looking for Perl under Web Dev. Plus Ruby's not exclusively used for Web Dev. I don't mean duplication of forums or anything, just a link to each forum under both categories...

Just a thought, what do you guys think?

Assembly Guy 72 Posting Whiz

Just for those of you who may think that logic gates are worthless by themselves: http://blog.kevtris.org/?p=62

This nutter made a functional computer out of NAND gates... It's crazy - I would like to see his schematic diagrams to try and start to fathom how it works...

ddanbe commented: He man,thanks for the link! +14
Assembly Guy 72 Posting Whiz

Looks nice, but there's not enough contrast between the main page title and the background. Maybe pick the shadow colour up a tiny bit or something? I'm no professional designer, just a gut feeling.

Or perhaps change the title colour to the same pink that you're using for borders elsewhere on the page.

Or maybe add a partially opaque div (maybe 30%-50%) behind all of the page content which stretches the same width as the content, and 100% of the window height.

Assembly Guy 72 Posting Whiz

That's nice code, but I think it'll replace the character after the space with an underscore; you increment BX before you store the underscore. Also, you're comparing words (cmp AX, [bx]), not bytes, so your code will never find any spaces.

To simplify your code, you might want to make use of the lodsb and loop instructions. See http://faydoc.tripod.com/cpu/lodsb.htm and http://faydoc.tripod.com/cpu/loop.htm for details. Basically, lodsb will load a byte from the segment:offset pair DS:SI into al and increment SI all in one. loop will decrement CX and jump to the specified label if CX != 0. You could also try storing a null character just after the string to denote the end of the string. While it uses up one extra byte in memory, it makes code much tidier and smaller, for example:

array db "imaginary input",0
    mov si, array

.checkloop:
    lodsb           ; Load next byte into AL and increment SI
    cmp al, 0       ; End of string?
    jz .quit        ; If so, quit the loop
    cmp al, ' '     ; Is the character a space?
    jnz .checkloop  ; If not, load the next byte
    dec si          ; Move back to the address of the space
    mov al, '_'     ; Put character to store in AL
    stosb           ; Store the underscore over the space
    jmp .checkloop  ; Loop
.quit:
    ; do something else...

You could use loop with lodsb like this:

    mov si, array
    mov cx, actlen
.checkloop:
    lodsb           ; Load next byte into …
Assembly Guy 72 Posting Whiz

You do make a good point there, <M/>

<M/> commented: i can only wonder why i got downvoted... +0
Assembly Guy 72 Posting Whiz

I don't think children can feel TRUE love. I mean, yeah they feel love towards parents, friends, special friends, but I mean I just don't believe that they feel the same 'true' love that adults feel.

Assembly Guy 72 Posting Whiz

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++.+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

Oh god, is that brainf...udge? I was initially going to jokingly ask if you were using that godforsaken language, but it seems you already are...

Assembly Guy 72 Posting Whiz

Also double-checking the level of your problem solving and analytical skills can't be a bad idea.

First of all I would recommend you take courses on algorithms and flowcharts

Yes, flowcharts and other such diagrams are damned useful. Being able to code to fix a problem is just fine, but communicating or documenting the method by which you did so or how to prevent similar problems to non-coders are situations where diagrams are damned useful.
On top of that, sometimes you've written a program to solve a problem, but it's not doing what it should. This happens to me sometimes when writing my OS, and being able to get out pen and paper and collaborate with my programming mates, with fresh minds, who don't know Assembly is just so useful.

Assembly Guy 72 Posting Whiz

Also, do i have to use things like phpmyadmin? Or can i build my own?

You won't need PHPMyAdmin if you have access (SSH, remote desktop or physical access) to the computer you'll be running the MySQL server on. PHPMyAdmin just provides a web-based way to create tables, databases etc on a MySQL server, but if you can log into the server with a MySQL client program (ie you're sitting at the computer or SSH-ing/Remote Desktop-ing into it), then you can use that instead of PHPMyAdmin.

(sorry, but i may come up with a bunch of questions in thread.)

Questions = interest, curiosity and engagement = more learning :)

Assembly Guy 72 Posting Whiz

It should't be too bad if you understand what you're doing and why you're doing it. I've made quite a few things that I used to teach myself PHP and mysql - forum software and the like.
The great thing about blogs is that you can start out with it being simple - eg. you're the only person who can log in and post. Then you can expand it depending on your needs - be able to edit posts, have others log in and comment, but not post blog entries, or give your friends accounts so they can make blog posts... Anyway, awesome choice of project. Blogs are a really great project, being as simple or as complicated as you want them to be.
I'll re-iterate what others have said:
Learn PHP fairly well and also learn how to integrate MySQL with it (PHP makes it so easy for you). Set up a MySQL server, write some relatively simple code, profit.

Also, check out http://www.tizag.com/mysqlTutorial/ and http://http://www.tizag.com/phpT/ to learn PHP and MySQL.

Good luck!

Assembly Guy 72 Posting Whiz

I don't write code with bugs in it... I merely include a few unintentional features -- Adam Hyde