movt

Move Top (A32)

MOVT<c> <Rd>, #<imm16>

Writes a 16-bit immediate to the top half of a register.

Pseudocode Operation

imm16 ← imm4 : imm12
Rd[31:16] ← imm16
Rd[15:0] ← Rd[15:0]

Example

MOVT r0, #16

Encoding

Binary Layout
cond
31:28
00110
27:23
1
22
00
21:20
imm4
19:16
Rd
15:12
imm12
11:0
 
Format Data Proc
Opcode 0x03400000
Extension A32 (Base)

Operands

  • Rd
    Destination general-purpose register
  • imm16
    Value

Related

More in A32 (Base)

Reference

Instruction Forms

Encoding Instruction ISA Bit pattern
0x03400000 MOVT{<c>}{<q>} <Rd>, #<imm16> A32 cond | 00110 | 1 | 00 | imm4 | Rd | imm12
0xF2C00000 MOVT{<c>}{<q>} <Rd>, #<imm16> T32 11110 | i | 10 | 1 | 100 | imm4 | 0 | imm3 | Rd | imm8

Description

Move Top writes an immediate value to the top halfword of the destination register. It does not affect the contents of the bottom halfword.

Operation

if ConditionPassed() then
    EncodingSpecificOperations();
    R[d]<31:16> = imm16;
    // R[d]<15:0> unchanged