Encoding for LTR Instruction Is Documented Incorrectly

ID Number: Q72706

5.10 5.10a 6.00 | 5.10 5.10a 6.00

MS-DOS | OS/2

docerr

Summary:

The LTR (load task register) instruction is documented incorrectly in

the printed documentation for the Microsoft Macro Assembler (MASM)

versions 5.1, 5.1a, 6.0, and the online help for MASM version 6.0. 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

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: /Fl

.386p

.MODEL SMALL

.DATA

task dw ?

.CODE

main PROC

ltr BX

ltr task

main ENDP

END