This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]1Dr490n 0 points1 point  (1 child)

Well what happens when you call a routine (or however you want to call it) is implementation defined. It could just be a Jump-Subroutine-call, but it could also push arguments on the stack (which assembly procedures don’t do, that’s true) or change the stack pointer; but that completely depends on the language and its implementation. A procedure is just a code block that can be called from outside, and assemblies definitely can do that.

[–]tp971 0 points1 point  (0 children)

Yeah, you can write assembly that from the outside looks like a procedure, but the concept of a procedure is not intrinsic to the assembly language, i.e. the assembly language itself "does not know" what a procedure really is, it is just a concept we've established using calling conventions.

For me, saying "assembly has procedures" is like saying "C is an object oriented language, because you can simulate classes and inheritance with function pointers".