There is an enormous literature on the subject, in many languages and going back many years, which the Commission had a responsibility to take into account – and every reason to want to. The Report of the Commission on Intervention and State Sovereignty could not have been produced in an intellectual vacuum. Regional Roundtables and National Consultations Military Interventions and Humanitarian Actionģ. Operational Aspects of Military Interventionsġ0. MORALITY, LAW, OPERATIONS, AND POLITICSĩ.
#Incompatible redefinition of macro iar arm full
The full catalogue of IDRC Books is available at. All inks and coatings are vegetable-based products. All paper used is recycled as well as recyclable. IDRC Books endeavours to produce environmentally friendly publications. Mention of a proprietary name does not constitute endorsement of the product and is given only for information. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, or otherwise, without the prior permission of the International Development Research Centre. International Development Research Centre (Canada) II. Issued by the International Development Research Centre. The Responsibility to Protect: Research, Bibliography, Background Supplementary Volume to the Report of the International Commission on Intervention and State Sovereignty International Commission on Intervention and State Sovereignty National Library of Canada cataloguing in publication data © International Development Research Centre 2001 If the program was already using those registers for keeping important data, then the existing data from these registers should be saved in the stack and restored after the instruction is executed.Published by the International Development Research Centre PO Box 8500, Ottawa, ON, Canada K1G 3H9 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.