Error in XMS specification? - movp (Developers)
Here's another piece of code explaining the overlap check for moving "down" (DF=1). If S < D and S + L > D then we are overlapping in the way requiring a backwards move.
cmp ax, dx ; source above destination ?
ja .up ; yes, move up (forwards) -->
je .return ; same, no need to move -->
push ax
add ax, cx ; (expected not to carry)
cmp ax, dx ; end of source is above destination ?
pop ax
ja .down ; yes, move from top down -->
; Here, the end of source is below-or-equal the destination,
; so they do not overlap. In this case we prefer moving up.
---
l
Complete thread:
- Error in XMS specification? - ecm, 27.04.2019, 16:16 (Developers)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- Error in XMS specification? - Oso2k, 27.04.2019, 20:20
- Error in XMS specification? - ecm, 27.04.2019, 21:40
- Error in XMS specification? - emu2 - ecm, 09.01.2026, 21:53
- Error in XMS specification? - movp - ecm, 09.01.2026, 22:07
- Error in XMS specification? - movp - bretjohn, 10.01.2026, 00:18
- Error in XMS specification? - movp - ecm, 09.01.2026, 22:07
- Error in XMS specification? - Oso2k, 27.04.2019, 20:20
Mix view