0 0 0 * 80x86 MASM Reference - Mark McDonald 941022 48 48 1 * 80x86 MASM Reference - Mark McDonald 941022 61 61 1 Registers 119 693 2 General Purpose Registers Segment Registers 724 1919 2 Status Registers (Flags) 1971 1971 1 8088/8086 Effective Address (EA) Calculation 1984 2630 2 Registers 2672 3588 1 Instruction Clock Cycle Calculation 3617 3617 1 Macro Assembler Directives 3659 4509 2 Processor Code Generation Directives 4541 5498 2 Memory Model Directives 5566 7975 2 Segment Definition, Segment Ordering and Linkage Directives 8010 9492 2 Data Allocation Directives 9536 10332 2 Logical and Bit Oriented Directives 10371 11612 2 Other Operators and Directives 11665 12420 2 Program Listing and Documentation Directives 12458 12654 2 Condition Assembly Directives 12690 13600 2 Macro Definition Directives 13632 14065 2 User Message Directives 14141 14941 2 Predefined Equates (available only if simplified segments are used) 14966 15289 2 Radix Specifiers 15336 16964 1 Microsoft Assembler Command Line Options 16990 17088 1 Environment Variables 17139 17139 1 Memory Model Programming & Segment Information 17150 18210 2 General 18235 18602 2 Small Memory Model 18631 19127 2 Compact Memory Model 19155 19522 2 Medium Memory Model 19558 20159 2 Large or Huge Memory Models 20199 21263 1 MSW - Machine Status Word (286/386) 21279 21279 1 MASM COMMANDS 21314 21637 2 AAA - Ascii Adjust for Addition 21673 22028 2 AAD - Ascii Adjust for Division 22070 22510 2 AAM - Ascii Adjust for Multiplication 22549 22882 2 AAS - Ascii Adjust for Subtraction 22907 23642 2 ADC - Add With Carry 23672 24387 2 ADD - Arithmetic Addition 24409 25128 2 AND - Logical And 25186 25728 2 ARPL - Adjusted Requested Privilege Level of Selector 25782 26367 2 BOUND - Array Index Bound Check (186/188/286/386) 26402 26964 2 BSF/BSR - Bit Scan (386 only) 26989 27465 2 BT - Bit Test (386) 27507 28020 2 BTC - Bit Test with Compliment (386) 28057 28570 2 BTR - Bit Test with Reset (386) 28604 29113 2 BTS - Bit Test and Set (386) 29139 29906 2 CALL - Procedure Call 29937 30240 2 CBW - Convert Byte to Word 30286 30617 2 CDQ - Convert Double to Quad (386 only) 30639 30868 2 CLC - Clear Carry 30899 31210 2 CLD - Clear Direction Flag 31251 31588 2 CLI - Clear Interrupt Flag (disable) 31646 32016 2 CLTS - Clear Task Switched Flag (286/386 privileged) 32048 32287 2 CMC - Complement Carry Flag 32305 33070 2 CMP - Compare 33123 33859 2 CMPS - Compare String (Byte, Word or Doubleword) 33896 34210 2 CWD - Convert Word to Doubleword 34269 34593 2 CWDE - Convert Word to Extended Doubleword (386 only) 34631 34996 2 DAA - Decimal Adjust for Addition 35037 35405 2 DAS - Decimal Adjust for Subtraction 35425 35882 2 DEC - Decrement 35899 36840 2 DIV - Divide 36888 37560 2 ENTER - Make Stack Frame (188/186/286/386) 37577 37985 2 ESC - Escape 38004 38375 2 HLT - Halt CPU 38393 39302 2 IDIV - Divide 39329 41224 2 IMUL - Signed Multiply 41264 41918 2 IN - Input Byte or Word From Port 41938 42457 2 INC - Increment 42509 43179 2 INS - Input String from Port (188/186/286/386) 43199 43815 2 INT - Interrupt 43848 44286 2 INTO - Interrupt on Overflow 44320 45046 2 IRET/IRETD - Interrupt Return 45074 47664 2 Jump Instructions Table 47715 48208 2 JA/JNBE - Jump Above / Jump Not Below or Equal 48262 48778 2 JAE/JNB - Jump Above or Equal / Jump on Not Below 48829 49342 2 JB/JNAE - Jump Below / Jump Not Above or Equal 49393 49895 2 JBE/JNA - Jump Below or Equal / Jump Not Above 49918 50421 2 JC - Jump on Carry 50469 50912 2 JCXZ/JECXZ - Jump if Register (E)CX is Zero 50947 51433 2 JE/JZ - Jump Equal / Jump Zero 51485 52011 2 JG/JNLE - Jump Greater / Jump Not Less or Equal 52063 52563 2 JGE/JNL - Jump Greater or Equal / Jump Not Less 52615 53124 2 JL/JNGE - Jump Less / Jump Not Greater or Equal 53176 53709 2 JLE/JNG - Jump Less or Equal / Jump Not Greater 53738 54799 2 JMP - Unconditional Jump 54826 55331 2 JNC - Jump Not Carry 55376 55860 2 JNE/JNZ - Jump Not Equal / Jump Not Zero 55888 56356 2 JNO - Jump Not Overflow 56382 56846 2 JNS - Jump Not Signed 56894 57366 2 JNP/JPO - Jump Not Parity / Jump Parity Odd 57392 57857 2 JO - Jump on Overflow 57907 58376 2 JP/JPE - Jump on Parity / Jump on Parity Even 58397 58858 2 JS - Jump Signed 58897 59231 2 LAHF - Load Register AH From Flags 59281 59937 2 LAR - Load Access Rights (286/386 protected) 59969 60679 2 LDS - Load Pointer Using DS 60712 61055 2 LEA - Load Effective Address 61118 61505 2 LEAVE - Restore Stack for Procedure Exit (188/186/286/386) 61537 62247 2 LES - Load Pointer Using ES 62291 62940 2 LFS - Load Pointer Using FS (386 only) 63002 63318 2 LGDT - Load Global Descriptor Table (286/386 privileged) 63383 63680 2 LIDT - Load Interrupt Descriptor Table (286/386 privileged) 63724 64374 2 LGS - Load Pointer Using GS (386 only) 64435 64786 2 LLDT - Load Local Descriptor Table (286/386 privileged) 64846 65193 2 LMSW - Load Machine Status Word (286/386 privileged) 65245 65919 2 LSL - Load Segment Limit (286/386 protected) 65963 66612 2 LSS - Load Pointer Using SS (386 only) 66632 67242 2 LOCK - Lock Bus 67288 67883 2 LODS - Load String (Byte, Word or Double) 67931 68433 2 LOOP - Decrement CX and Loop if CX Not Zero 68486 69065 2 LOOPE/LOOPZ - Loop While Equal / Loop While Zero 69128 69711 2 LOOPNZ/LOOPNE - Loop While Not Zero / Loop While Not Equal 69763 70100 2 LTR - Load Task Register (286/386 privileged) 70128 71946 2 MOV - Move Byte or Word 71984 72590 2 MOVS - Move String (Byte or Word) 72636 73012 2 MOVSX - Move with Sign Extend (386 only) 73058 73436 2 MOVZX - Move with Zero Extend (386 only) 73464 74603 2 MUL - Unsigned Multiply 74639 75094 2 NEG - Two's Complement Negation 75123 75468 2 NOP - No Operation (90h) 75518 75930 2 NOT - One's Compliment Negation (Logical NOT) 75960 76797 2 OR - Inclusive Logical OR 76827 77528 2 OUT - Output Data to Port 77580 78567 2 OUTS - Output String to Port (188/186/286/386) 78598 79168 2 POP - Pop Word off Stack 79233 79727 2 POPA/POPAD - Pop All Registers onto Stack (188/186/286/386) 79764 80118 2 POPF/POPFD - Pop Flags off Stack 80150 80809 2 PUSH - Push Word onto Stack 80877 81314 2 PUSHA/PUSHAD - Push All Registers onto Stack (188/186/286/386) 81355 81707 2 PUSHF/PUSHFD - Push Flags onto Stack 81743 82541 2 RCL - Rotate Through Carry Left 82578 83375 2 RCL - Rotate Through Carry Right 83409 84209 2 REP - Repeat String Operation 84252 84806 2 REPE/REPZ - Repeat Equal / Repeat Zero 84859 85417 2 REPNE/REPNZ - Repeat Not Equal / Repeat Not Zero 85454 86199 2 RET/RETF - Return From Procedure 86221 87029 2 ROL - Rotate Left 87052 87862 2 ROR - Rotate Right 87902 88218 2 SAHF - Store AH Register into FLAGS 88275 89059 2 SAL/SHL - Shift Arithmetic Left / Shift Logical Left 89092 89883 2 SAR - Shift Arithmetic Right 89914 90667 2 SBB - Subtract with Borrow 90718 91297 2 SCAS - Scan String (Byte, Word or Doubleword) 91356 91772 2 SETAE/SETNB - Set if Above or Equal / Set if Not Below 91831 92245 2 SETB/SETNAE - Set if Below / Set if Not Above or Equal 92304 92738 2 SETBE/SETNA - Set if Below or Equal / Set if Not Above 92787 93176 2 SETE/SETZ - Set if Equal / Set if Zero (386) 93235 93628 2 SETNE/SETNZ - Set if Not Equal / Set if Not Zero (386) 93688 94130 2 SETL/SETNGE - Set if Less / Set if Not Greater or Equal 94190 94620 2 SETGE/SETNL - Set if Greater or Equal / Set if Not Less 94689 95160 2 SETLE/SETNG - Set if Less or Equal / Set if Not greater or Equal 95220 95687 2 SETG/SETNLE - Set if Greater / Set if Not Less or Equal 95718 96089 2 SETS - Set if Signed (386) 96125 96499 2 SETNS - Set if Not Signed (386) 96529 96901 2 SETC - Set if Carry (386) 96936 97311 2 SETNC - Set if Not Carry (386) 97344 97719 2 SETO - Set if Overflow (386) 97757 98135 2 SETNO - Set if Not Overflow (386) 98194 98585 2 SETP/SETPE - Set if Parity / Set if Parity Even (386) 98646 99041 2 SETNP/SETPO - Set if No Parity / Set if Parity Odd (386) 99103 99418 2 SGDT - Store Global Descriptor Table (286/386 privileged) 99483 99780 2 SIDT - Store Interrupt Descriptor Table (286/386 privileged) 99841 100193 2 SLDT - Store Local Descriptor Table (286/386 privileged) 100225 100992 2 SHR - Shift Logical Right 101037 102056 2 SHLD/SHRD - Double Precision Shift (386) 102116 102448 2 SMSW - Store Machine Status Word (286/386 privileged) 102468 102700 2 STC - Set Carry 102729 103054 2 STD - Set Direction Flag 103104 103400 2 STI - Set Interrupt Flag (Enable Interrupts) 103452 103969 2 STOS - Store String (Byte, Word or Doubleword) 104020 104348 2 STR - Store Task Register (286/386 privileged) 104367 105086 2 SUB - Subtract 105118 105846 2 TEST - Test For Bit Pattern 105889 106346 2 VERR - Verify Read (286/386 protected) 106390 106846 2 VERW - Verify Write (286/386 protected) 106874 107350 2 WAIT/FWAIT - Event Wait 107370 107952 2 XCHG - Exchange 107979 108372 2 XLAT/XLATB - Translate 108395 109074 2 XOR - Exclusive OR 1 109074 1 VIEW ENTIRE DOCUMENT