Difference between revisions of "FF7/Field/Script/Opcodes/79 MINUS2!"
Jump to navigation
Jump to search
my_wiki>Halkun |
my_wiki>Halkun |
||
Line 14: | Line 14: | ||
* '''const Bit[4]''' ''D'': Destination bank | * '''const Bit[4]''' ''D'': Destination bank | ||
* '''const Bit[4]''' ''S'': Source bank | * '''const Bit[4]''' ''S'': Source bank | ||
− | * '''const UByte''' ''Dest'': The destination variable, to which the operand is | + | * '''const UByte''' ''Dest'': The destination variable, to which the operand is subtracted. |
− | * '''const | + | * '''const SWord''' ''Oper'': The operand to be subtracted from the destination. |
==== Description ==== | ==== Description ==== | ||
− | + | Subtracts "Oper" from "Dest" and stores the result back into "Dest". The result of the subtraction is capped at -32768. Oddly enough the result is not capped at the positive end, 32767, so subtracting a large negative number from a large positive number will still produce wrap-around. | |
− | If the Source Bank is 0 then the “Oper†is | + | If the Source Bank is 0 then the “Oper†is subtracted from the destination value. |
− | If the Source Bank is an | + | If the Source Bank is an 16 bit bank, then the “Oper†is the address in that bank where the operand is. |
Revision as of 01:40, 3 September 2006
- Opcode: 0x79
- Short name: MINUS2!
- Long name: Saturated Subtraction (16-bit)
Memory layout
0x79 | D/S | Dest | Oper |
---|
Arguments
- const Bit[4] D: Destination bank
- const Bit[4] S: Source bank
- const UByte Dest: The destination variable, to which the operand is subtracted.
- const SWord Oper: The operand to be subtracted from the destination.
Description
Subtracts "Oper" from "Dest" and stores the result back into "Dest". The result of the subtraction is capped at -32768. Oddly enough the result is not capped at the positive end, 32767, so subtracting a large negative number from a large positive number will still produce wrap-around. If the Source Bank is 0 then the “Oper†is subtracted from the destination value. If the Source Bank is an 16 bit bank, then the “Oper†is the address in that bank where the operand is.