memfill.asm

来自「这是一个数字图像处理的matlab仿真程序」· 汇编 代码 · 共 62 行

ASM
62
字号
; #########################################################################

    .486
    .model flat, stdcall  ; 32 bit memory model
    option casemap :none  ; case sensitive

    .code

; #########################################################################

memfill proc lpmem:DWORD,ln:DWORD,fill:DWORD

    mov edx, lpmem      ; buffer address
    mov eax, fill       ; fill chars

    mov ecx, ln         ; byte length
    shr ecx, 5          ; divide by 32
    cmp ecx, 0
    jz rmndr

    align 4

  ; ------------
  ; unroll by 8
  ; ------------
  @@:
    mov [edx],    eax   ; put fill chars at address in edx
    mov [edx+4],  eax
    mov [edx+8],  eax
    mov [edx+12], eax
    mov [edx+16], eax
    mov [edx+20], eax
    mov [edx+24], eax
    mov [edx+28], eax
    add edx, 32
    dec ecx
    jnz @B

  rmndr:

    and ln, 31          ; get remainder
    cmp ln, 0
    je mfQuit
    mov ecx, ln
    shr ecx, 2          ; divide by 4

  @@:
    mov [edx], eax
    add edx, 4
    dec ecx
    jnz @B

  mfQuit:

    ret

memfill endp

; #########################################################################

end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?