brender-v1.1.2/FW/FXADC386.ASM
2022-05-04 18:14:23 -07:00

40 lines
787 B
NASM

;; Copyright (c) 1992,1993-1995 Argonaut Technologies Limited. All rights reserved.
;;
;; $Id: fxadc386.asm 1.4 1995/05/25 13:23:57 sam Exp $
;; $Locker: $
;;
fixed typedef dword
.386p
.model flat,c
.data
db '$Id: fxadc386.asm 1.4 1995/05/25 13:23:57 sam Exp $',0
.code
; br_fixed_ls BR_ASM_CALL BrFixedAddCarry(br_fixed_ls a, br_fixed_ls b, char * flag);
;
; return a+b and return flag if carry from bit 15
;
BrFixedAddCarry proc uses ebx edx, param_a: fixed, param_b: fixed, param_flag: ptr byte
mov ebx,param_flag
xor eax,eax
mov byte ptr [ebx],0
mov ax,word ptr param_a
mov dx,word ptr param_a+2
add ax,word ptr param_b
jnc no_carry
mov byte ptr [ebx],-1
no_carry:
adc dx,word ptr param_b+2
shl edx,16
or eax,edx
ret
BrFixedAddCarry endp
end