📄 asmwav.lst
字号:
Microsoft (R) Macro Assembler Version 6.14.8444 07/27/02 10:30:23
ROUTINES FOR INTERWEAVING INTEGERS Page 1 - 1
NAME ASMWAV
PAGE 52,120
TITLE ROUTINES FOR INTERWEAVING INTEGERS
;
COMMENT *
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
COPYRIGHT (C) 2002 GESTRON ENGRG. ALL RIGHTS RESERVED. NO PART OF
PUBLICATION OR PROGRAM MAY BE TRANSCRIBED,REPRODUCED, TRANSMITTED,
OR TRANSLATED INTO ANY LANGUAGE OR COMPUTER LANGUAGE BY ANY MEANS:
ELECTRONIC, MECHANICAL, MAGNETIC, CHEMICAL, OPTICAL, MANUAL OR
OTHERWISE OR IN ANY FORM, WITHOUT THE PRIOR WRITTEN PERMISSION OF
G. E. SOMERVILLE, 7315 BROCADE DRIVE, CITRUS HEIGHTS CALIF. 95621.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INCLUDE ASMWAV.INC
*
.486
.MODEL FLAT,STDCALL
.NOLIST
.LIST
00000000 .DATA
;
00000000 0000 YINCR WORD ?
00000002 0000 XINCR WORD ?
00000004 0000 STRATH WORD ?
00000006 0000 STRATV WORD ?
00000008 0000 STRATT WORD ?
0000000A 0000 DIAGT WORD ?
0000000C 0000 PIXLOW WORD ?
0000000E 0000 PIXHGH WORD ?
00000010 0000 PIXSIZ WORD ?
;
00000000 .CODE
;
00000000 DllMain PROC STDCALL, handle:dword, dwReason:dword, dwReserved:dword
00000003 B8 00000001 MOV EAX,1
RET
0000000C DllMain ENDP
;
PAGE 59,120
;
;THIS CONVERTS INTERLEAVED INTEGERS INTO TWO INTEGERS
0000000C INTLVE PROC STDCALL USES ECX ESI EDI EBX AX, NQUAN:DWORD,NWORD:DWORD,NWRD1:DWORD,NWRD2:
DWORD
00000015 8B 4D 08 MOV ECX,NQUAN ;# TO DO (1/2 OF INTERLEAVE)
00000018 8B 5D 0C MOV EBX,NWORD ;SOURCE ADDR
0000001B 8B 7D 10 MOV EDI,NWRD1 ;LOW WORD ADDRESS
0000001E 8B 75 14 MOV ESI,NWRD2 ;HIGH WORD ADDRESS
00000021 66| 8B 03 NEXT: MOV AX,[EBX]
00000024 66| 89 07 MOV [EDI],AX
00000027 83 C3 02 ADD EBX,2
0000002A 66| 8B 03 MOV AX,[EBX]
0000002D 66| 89 06 MOV [ESI],AX
00000030 83 C6 02 ADD ESI,2
00000033 83 C7 02 ADD EDI,2
00000036 83 C3 02 ADD EBX,2
00000039 E2 E6 LOOP NEXT
RET
00000045 INTLVE ENDP
;
;THIS CONVERTS INTERLEAVED INTEGERS INTO ONE INTEGER ARRAY
Microsoft (R) Macro Assembler Version 6.14.8444 07/27/02 10:30:23
ROUTINES FOR INTERWEAVING INTEGERS Page 2 - 1
00000045 LVEINT PROC STDCALL USES ECX ESI EDI EBX AX, NQUAN:DWORD,NWORD:DWORD,NWRD1:DWORD,NWRD2:
DWORD
0000004E 8B 4D 08 MOV ECX,NQUAN ;# TO DO (1/2 OF INTERLEAVE)
00000051 8B 5D 0C MOV EBX,NWORD ;DEST ADDR
00000054 8B 7D 10 MOV EDI,NWRD1 ;LOW WORD ADDRESS
00000057 8B 75 14 MOV ESI,NWRD2 ;HIGH WORD ADDRESS
0000005A 66| 8B 07 NEXT: MOV AX,[EDI]
0000005D 66| 89 03 MOV [EBX],AX
00000060 83 C3 02 ADD EBX,2
00000063 66| 8B 06 MOV AX,[ESI]
00000066 66| 89 03 MOV [EBX],AX
00000069 83 C6 02 ADD ESI,2
0000006C 83 C7 02 ADD EDI,2
0000006F 83 C3 02 ADD EBX,2
00000072 E2 E6 LOOP NEXT
RET
0000007E LVEINT ENDP
;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -