Consolidated /docs into /pubs
This commit is contained in:
parent
9d356c582b
commit
71d117fa02
106 changed files with 350 additions and 317 deletions
|
|
@ -1,51 +0,0 @@
|
|||
---
|
||||
layout: page
|
||||
title: "x86 Instructions: UMOV"
|
||||
permalink: /docs/x86/ops/UMOV/
|
||||
---
|
||||
|
||||
UMOV (0x100F,0x110F,0x120F,0x130F)
|
||||
---
|
||||
|
||||
### Description
|
||||
|
||||
Excerpt from [http://www.rcollins.org/secrets/opcodes/UMOV.html](http://www.rcollins.org/secrets/opcodes/UMOV.html):
|
||||
|
||||
An undocumented op code used by ICE host software to perform
|
||||
memory cycles to the target system during HALT mode.
|
||||
|
||||
Undocumented: Available on all 80386/80486 processors.
|
||||
Useful only to BONDOUT (ICE) processors.
|
||||
UMOV
|
||||
Flags: User MOVE data
|
||||
+-+-+-+-+-+-+-+-+-+ +----------+----------+-------------+
|
||||
|O|D|I|T|S|Z|A|P|C| | 00001111 | 000100dw | mod,reg,r/m |
|
||||
+-+-+-+-+-+-+-+-+-+ +----------+----------+-------------+
|
||||
| | | | | | | | | | | 0F | 1x | xx |
|
||||
+-+-+-+-+-+-+-+-+-+ +----------+----------+-------------+
|
||||
|
||||
UMOV is an acronym for User-MOVe. When the In-Circuit Emulator
|
||||
(ICE) is in HALT mode, the CPU performs no recognizable bus
|
||||
cycles. Since the '386 is a dynamic device, it must be executing
|
||||
some instructions during HALT, but it is not doing it in a way
|
||||
recognizable to a logic analyzer with a '386 probe attached.
|
||||
|
||||
During HALT mode, the ICE differentiates between USER space and
|
||||
HOST space. The ICE is fetching, and performing all bus cycles
|
||||
to HOST memory space during HALT, and not USER space. Since the
|
||||
ICE differentiates between these two memory spaces, it needs a
|
||||
mechanism to access user memory space. That mechanism is UMOV.
|
||||
When a user request to view memory, or disassemble memory, the
|
||||
ICE executes UMOV instructions to get data from User space.
|
||||
|
||||
If UMOV is executed by a user program, it will appear it is a
|
||||
alias for MOV.
|
||||
|
||||
The field operands to UMOV are exactly the same as the MOV
|
||||
instruction. For example:
|
||||
d Direction. If set (d=1), do memory to register, or register
|
||||
to register; the reg field is the destination. If cleared
|
||||
(d=0), do register to memory; the reg field is the source.
|
||||
w Width. Selects the default data width. W=1 selects
|
||||
word width, according to the appropriate CPU operating mode,
|
||||
and/or size prefix override. W=0 selects 8-bit operands.
|
||||
Loading…
Reference in a new issue