If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Re: What IS Assembly??

Assembly instructions is the language that your processor speaks (Or rather machine code). Your processor does not directly execute VB, C, C++, or any other language.
An assembly instruction more or less directly maps to machine code.

VB.NET compiles to an intermediary language called CIL (formerly MSIL).
When you run your .NET application, the Just-In-Time (JIT) compiler will translate the CIL code to native code to be executed by the processor.
I'm probably missing some details in there somewhere but thats roughly how it works. Thats the relationship between VB and assembly instructions.

Re: What IS Assembly??

Assembly is one of the toughest programming language which will be used in hardware of Embedded for the Micro controller of all the IC's as per the instructions which are related to the controllers of IC version. It also helps to get the Embedded c because it is one of the combination language with the C.

Re: What IS Assembly??

If I can build on what some of the others have said:

The simplest computer would be some electrical relays cobbled together so that if this condition is met (relay 1 on) and that condition is not met (relay 2 off) then an output happens (relay 3 goes on). A microchip can be thought of as millions of microscopic relays, and we could program a microchip by telling each individual relay what to do, using a shorthand with 1 for on and 0 for off. It would be a nightmare of 10010110 00110101 10001001 and so forth, but it's possible. That's called low level programming.

Well, to make it easier, chip designer build in "BIOS" level instructions. Using those instructions, we can program the microchips without going blind typing 0 and 1. These use simple instructions called Interrupts. You place the data you need to manipulate into memory locations called "Registers," you trigger the appropriate Interrupt, and the output appears in a different register. This is not quite as low level -- It's called "Machine Language" and it's what all code winds up doing -- but it's the lowest level that you can actually work with.

That's still tough to manipulate, so the hardware people made up "Mnemonics." These are things like words that are easier to remember, and that you can use to write code that another programmer can make sense out of. That's Assembly language. It's very powerful, because it will do let you do anything that the machine is capable of doing.

As the programming languages get easier for programmers to read and use, they are called "high level" languages. VB is a very high level language. The only higher languages I can think of are various scripts, HTML, and "Batch file" programming. High level programs return syntax errors if you get them wrong, or refuse to do many things that you shouldn't do. Low level programs don't.

In short, Assembly is the lowest level code that is practical for a programmer to use. I hope that helps.

Anything I post is an example only and is not intended to be the only solution, the total solution nor the final solution to your request nor do I claim that it is. If you find it useful then it is entirely up to you to make whatever changes necessary you feel are adequate for your purposes.

The fact that the output is machine code... isn't any different from saying that a compiler's output is machine code.

The main difference is that you are working at a far lower level, much closer to machine instructions, then when writing compiler language programs.

None of this has anything to do with the "BIOS" or other wacky things mentioned.

Modern CPUs offer sophisticated levels of security. These prevent user programs from executing privileged instructions, can prevent execution of data as code, isolate processes from each others' memory, and so on. The result is that using assembly language doesn't help you bypass security.

The fact that the output is machine code... isn't any different from saying that a compiler's output is machine code.

The main difference is that you are working at a far lower level, much closer to machine instructions, then when writing compiler language programs.

None of this has anything to do with the "BIOS" or other wacky things mentioned.

Modern CPUs offer sophisticated levels of security. These prevent user programs from executing privileged instructions, can prevent execution of data as code, isolate processes from each others' memory, and so on. The result is that using assembly language doesn't help you bypass security.

Anything I post is an example only and is not intended to be the only solution, the total solution nor the final solution to your request nor do I claim that it is. If you find it useful then it is entirely up to you to make whatever changes necessary you feel are adequate for your purposes.

The fact that the output is machine code... isn't any different from saying that a compiler's output is machine code.

The main difference is that you are working at a far lower level, much closer to machine instructions, then when writing compiler language programs.

None of this has anything to do with the "BIOS" or other wacky things mentioned.

Modern CPUs offer sophisticated levels of security. These prevent user programs from executing privileged instructions, can prevent execution of data as code, isolate processes from each others' memory, and so on. The result is that using assembly language doesn't help you bypass security.

Not necessarily true. Depends on the data. If the data just happens to have same hex value as an instruction then it would execute it as an instruction.

Here's two ways that it is possible to execute data as code.

You can branch into the middle of a data stream

You can move data to a location where it overlays instructions

When programmers are not paying attention to what they are doing the above two are very common occurances. The computer does not know the difference between data and instructions and does not care since they all look like machine code.

As far as privileged instructions go one can execute them if one knows how to set their program to a supervisor state which is quite possible and easy to do.

This is not normal in the application world of programming but in the systems world of programming it is quite common.

Last edited by jmsrickland; Feb 16th, 2013 at 10:31 AM.

Anything I post is an example only and is not intended to be the only solution, the total solution nor the final solution to your request nor do I claim that it is. If you find it useful then it is entirely up to you to make whatever changes necessary you feel are adequate for your purposes.

The fact that the output is machine code... isn't any different from saying that a compiler's output is machine code.

The main difference is that you are working at a far lower level, much closer to machine instructions, then when writing compiler language programs.

None of this has anything to do with the "BIOS" or other wacky things mentioned.

Modern CPUs offer sophisticated levels of security. These prevent user programs from executing privileged instructions, can prevent execution of data as code, isolate processes from each others' memory, and so on. The result is that using assembly language doesn't help you bypass security.

Re: What IS Assembly??

High level programs return syntax errors if you get them wrong, or refuse to do many things that you shouldn't do. Low level programs don't.

That is not exactly so. Assembly is a low level language and you better believe it will return syntax errors. Write a program in Assembly instructions or 'mnemonics' and put in the wrong operands. When you go to assemble it (compile) your program will get a syntax error and refuse to run your code.

Anything I post is an example only and is not intended to be the only solution, the total solution nor the final solution to your request nor do I claim that it is. If you find it useful then it is entirely up to you to make whatever changes necessary you feel are adequate for your purposes.

Re: What IS Assembly??

High level programs return syntax errors if you get them wrong, or refuse to do many things that you shouldn't do. Low level programs don't.

That is not exactly so. Assembly is a low level language and you better believe it will return syntax errors. Write a program in Assembly instructions or 'mnemonics' and put in the wrong operands. When you go to assemble it (compile) your program will get a syntax error and the Assembler will refuse to compile your code into an executable modlule.

Last edited by jmsrickland; Feb 16th, 2013 at 04:24 PM.

Anything I post is an example only and is not intended to be the only solution, the total solution nor the final solution to your request nor do I claim that it is. If you find it useful then it is entirely up to you to make whatever changes necessary you feel are adequate for your purposes.

Re: What IS Assembly??

Originally Posted by Atheist

Assembly instructions is the language that your processor speaks (Or rather machine code). Your processor does not directly execute VB, C, C++, or any other language.
An assembly instruction more or less directly maps to machine code.

VB.NET compiles to an intermediary language called CIL (formerly MSIL).
When you run your .NET application, the Just-In-Time (JIT) compiler will translate the CIL code to native code to be executed by the processor.
I'm probably missing some details in there somewhere but thats roughly how it works. Thats the relationship between VB and assembly instructions.

Thats is informative. I actually thought VB was like a blanket over the processor. Ha!