DOCERR: Encoding for LTR Instruction Is Incorrect (72706)



The information in this article applies to:

  • Microsoft Macro Assembler (MASM) 5.1
  • Microsoft Macro Assembler (MASM) 5.1a
  • Microsoft Macro Assembler (MASM) 6.0
  • Microsoft Macro Assembler (MASM) 6.0a
  • Microsoft Macro Assembler (MASM) 6.0b

This article was previously published under Q72706

SUMMARY

The LTR (load task register) instruction is documented incorrectly in the printed documentation for the Microsoft Macro Assembler (MASM) versions 5.1, and 5.1a and the online help for MASM versions 6.0, 6.0a, and 6.0b. The following is the documented encoding:
   00001111 00000000 mod,001,r/m
				
However, this is the actual encoding for LTR:
   00001111 00000000 mod,011,r/m
				

MORE INFORMATION

If the sample code below is assembled and a source listing is generated, the following encoding is listed:
   0000  0F 00 DB              ltr BX
   0003  0F 00 1D 00000000 R   ltr task
				
0DBh evaluates to 11011011y, 1Dh evaluates to 00011101y.

Sample Code

; Assemble Options Needed: /c /Fl

.386p
.MODEL small
.STACK 4096

.DATA
task dw ?

.CODE
main PROC
   ltr BX
   ltr task
main ENDP
END
				

Modification Type:MinorLast Reviewed:11/17/2003
Keywords:KB72706