MOVA, PUSHA MOVE ADDRESS, PUSH ADDRESS
Purpose |
calculate address of quantity |
Format |
opcode src.ax, dst.wl MOVA opcode src.ax PUSHA |
Operation |
dst ß src; MOVA -(SP) ß src; PUSHA |
Condition codes |
N ß result LSS 0; Z ß result EQL 0; V ß 0; C ß C; |
Exceptions |
None |
Opcodes |
9E MOVAB Move Address Byte 3E MOVAW Move Address Word DE MOVAL Move Address Long DE MOVAF Move Address Floating 7E MOVAQ Move Address Quad 7E MOVAD Move Address Double 9F PUSHAB Push Address Byte 3F PUSHAW Push Address Word DF PUSHAL Push Address Long DF PUSHAF Push Address Floating 7F PUSHAQ Push Address Quad 7F PUSHAD Push Address Double |
Description |
For MOVA, the destination operand is replaced by the source operand which is an address. For PUSHA, the source operand is pushed on the stack. The context in which the source operand is evaluated is given by the data type of the instruction. The operand whose address replaces the destination operand is not referenced. |
Notes |
1. The source operand is of address access type which causes the address of the specified operand to be moved. 2. PUSHAx is equivalent to MOVAx src, -(SP), but is shorter. |
Example 1
.text
main: .word 0
moval myString, r0
pushl r0
calls $1, .puts
pushl $0
calls $1, .exit
.data
myString: .asciz "Hello, World"