Программирование на ASM

Скажите, как от flat assembler добиться разбиения qword константы на две dword константы? Мне нужно значение с плавающей запятой двойной точности записать в стек, желательно просто двумя push с непосредственными значениями а не адресами подготовленных переменных. Догадываюсь что это как-то можно сделать макросом, но как именно - не понимаю.
 
Скажите, как от flat assembler добиться разбиения qword константы на две dword константы? Мне нужно значение с плавающей запятой двойной точности записать в стек, желательно просто двумя push с непосредственными значениями а не адресами подготовленных переменных. Догадываюсь что это как-то можно сделать макросом, но как именно - не понимаю.

Приведи код.
 
Код особо не важен. В общем я использую OGL и некоторым функциям мне нужно передавать значения с плавающей запятой двойной точности. Причем значения заранее известны. Работаю в защищенном режиме (32 бит).
Если коротко - мне просто нужно написать макрос, который двумя pushd заталкивает в стэк QWORD. Причем желательно чтобы это было что-то вроде обновленной версией макроса stdcall. Пробовал сам написать но ничего не получилось. Мануал читал.
 

Grunger

Ословед
Награды
6
Такой вопрос.
Tasm
Составить программу, осуществляющую проверку пароля- двух символов (например, 12).

Решение (делал сам, но давно).

.MODEL small
.DATA
ask db 'Password: ','$'
y db 'Yes',13,10,'$'
n db 'No',13,10,'$'
p db '12$'
p1 db 3,?,3 dup(3),13,10,'$'
ent db 13,10,'$'
.STACK 100h
.CODE
mov ax [MENTION=231743]da[/MENTION]ta
mov ds,ax
mov dx, offset ask
mov ah,9h
int 21h
mov al,0
mov ah,0ch
int 21h
mov dx, offset ent
mov ah,9h
int 21h
mov dx, offset p1
mov ah,0ah
int 21h
mov al,p[0]
cmp al,p1[2]
jne L1
mov al,p[1]
cmp al,p1[3]
jne L1
mov dx,offset y
jmp L2
L1: mov dx, offset n
L2: mov ah,9h
int 21h
mov ah,4ch
int 21h
END

Вопрос.
Не могу понять, что означает описание
p1 db 3,?,3 dup(3),13,10,'$'
p1 - переменная для хранения введенной строки.
Почему не взять просто 2 dup (?)?
Точнее даже, не почему не взять, а почему так не работает?
 
Сверху