fix push/pop instructions
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1583
This commit is contained in:
parent
73943385cd
commit
6455ddbd6e
1 changed files with 5 additions and 5 deletions
|
@ -16,7 +16,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: cpu.cpp,v 1.52 2004-01-13 08:56:10 harekiet Exp $ */
|
||||
/* $Id: cpu.cpp,v 1.53 2004-01-14 17:09:41 harekiet Exp $ */
|
||||
|
||||
#include <assert.h>
|
||||
#include "dosbox.h"
|
||||
|
@ -55,24 +55,24 @@ void CPU_Core_Normal_Init(void);
|
|||
void CPU_Core_Dyn_X86_Init(void);
|
||||
|
||||
void CPU_Push16(Bitu value) {
|
||||
reg_esp=(reg_esp&~cpu.stack.mask)|(reg_esp-2)&cpu.stack.mask;
|
||||
reg_esp=(reg_esp&~cpu.stack.mask)|((reg_esp-2)&cpu.stack.mask);
|
||||
mem_writew(SegPhys(ss) + (reg_esp & cpu.stack.mask) ,value);
|
||||
}
|
||||
|
||||
void CPU_Push32(Bitu value) {
|
||||
reg_esp=(reg_esp&~cpu.stack.mask)|(reg_esp-4)&cpu.stack.mask;
|
||||
reg_esp=(reg_esp&~cpu.stack.mask)|((reg_esp-4)&cpu.stack.mask);
|
||||
mem_writed(SegPhys(ss) + (reg_esp & cpu.stack.mask) ,value);
|
||||
}
|
||||
|
||||
Bitu CPU_Pop16(void) {
|
||||
Bitu val=mem_readw(SegPhys(ss) + (reg_esp & cpu.stack.mask));
|
||||
reg_esp=(reg_esp&~cpu.stack.mask)|(reg_esp+2)&cpu.stack.mask;
|
||||
reg_esp=(reg_esp&~cpu.stack.mask)|((reg_esp+2)&cpu.stack.mask);
|
||||
return val;
|
||||
}
|
||||
|
||||
Bitu CPU_Pop32(void) {
|
||||
Bitu val=mem_readd(SegPhys(ss) + (reg_esp & cpu.stack.mask));
|
||||
reg_esp=(reg_esp&~cpu.stack.mask)|(reg_esp+4)&cpu.stack.mask;
|
||||
reg_esp=(reg_esp&~cpu.stack.mask)|((reg_esp+4)&cpu.stack.mask);
|
||||
return val;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue