MOVH surécrit la moitié haute d'un registre. Similaire à MOV, cette instruction écrit le premier opérande dans le registre de destination, mais les 16 bits de poids fort sont remplacés par une valeur provenant d'une de ces sources :
Le 16 bits de poids faible se comportent comme MOV, alors que les bits de poids faibles sont décalés vers la gauche de 16 bits. Cette instruction est destinée à charger des données de 32 bits dans un registre, avec la séquence d'instructions suivante :
; charge 12345678h dans R1 MOV 5678h R1 ; d'abord on charge les LSB de manière normale MOVH 1234h R1 ; ensuite on surécrit les MSB