We have observed that, some instructions like IMUL, IDIV, INT, etc., need some of the information to be stored in some particular registers and even return values in some specific register(s). So, it could be useful to write two macros for saving and restoring data. So, each time you need to display on screen, you need to save these registers on the stack, invoke INT 80H and then restore the original value of the registers from the stack. In the above example of displaying a character string, the registers EAX, EBX, ECX and EDX have been used by the INT 80H function call. For displaying a string of characters, you need the following sequence of instructions − When you need to use some sequence of instructions many times in a program, you can put those instructions in a macro and use it instead of writing the instructions all the time.įor example, a very common need for programs is to write a string of characters in the screen. The macro is invoked by using the macro name along with the necessary parameters. Where, number_of_params specifies the number parameters, macro_name specifies the name of the macro. The macro begins with the %macro directive and ends with the %endmacro directive. In NASM, macros are defined with %macro and %endmacro directives. Writing a macro is another way of ensuring modular programming in assembly language.Ī macro is a sequence of instructions, assigned by a name and could be used anywhere in the program.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |