170 likes | 467 Views
Data Movement Instructions. A Course in Microprocessor Electrical Engineering Department University of Indonesia. MISCELLANEOUS DATA TRANSFER INSTRUCTION. XCHG The XCHG (exchange) instruction exchanges the contents of a register to any other register or memory location
E N D
Data Movement Instructions A Course in Microprocessor Electrical Engineering Department University of Indonesia
MISCELLANEOUS DATA TRANSFER INSTRUCTION • XCHG • The XCHG (exchange) instruction exchanges the contents of a register to any other register or memory location • Table 4.16 list the fomrs of the XCHG instructions • LAHF and SAHF • These instructions allowed 8085 software to be translated into 8086 software by a translation program; They are seldom used
MISCELLANEOUS DATA TRANSFER INSTRUCTION (cont’d) • XLAT • The XLAT (translate) instruction converts the contents of the AL register into a number stored in a memory table • This instruction performs the direct table look-up technique • Study Example 4.9 and Fig.4.17 • IN and OUT
MISCELLANEOUS DATA TRANSFER INSTRUCTION (cont’d) • Table 4.17 lists the forms of IN and OUT instructions, which perform I/O operations • Two forms of I/O device (port) addressing exist for IN and OUT: fixed-port (i.e., port number follows the instruction’s op-code) and variable port (i.e., it has permanent port number, stored in a ROM) • The port address appears on the address bus during an I/O instruction • Study Fig.4.18 and Example 4.10
MISCELLANEOUS DATA TRANSFER INSTRUCTION (cont’d) • MOVSX and MOVZX • The MOVSX (move and sign-extend) and MOVZX (move and zero-extend) move data and at the same time either sign-extend (i.e., its sign-bit is copied into the most significant part) or zero-extend (i.e., the most significant part fills with zero) it. See Table 4.18 • BSWAP • The BSWAP (byte swap) instruction takes the contents of any 32-bit register and swaps the 1st byte with the 4th, and the 2nd with the 4th
MISCELLANEOUS DATA TRANSFER INSTRUCTION (cont’d) • CMOV • The CMOV (conditional move) only move the data if the condition is true • See Table 4.19 and example 4.11
SEGMENT OVERRIDE PREFIX • The segment override prefix allows the pro-grammer to deviate from the default seg-ment • e.g., the MOV AX,[DI] --> MOV AX,ES:[DI] • See Table 4.20