📄 sgetsize.nas
字号:
;;
;; aPLib compression library - the smaller the better :)
;;
;; NASM safe assembler header access
;;
;; Copyright (c) 1998-2002 by Joergen Ibsen / Jibz
;; All Rights Reserved
;;
; define _ELF_ for ELF32 object files
; define _OBJ_ for OMF object files
bits 32
%include "apnasm.mac"
section aptext
cglobal aPsafe_get_orig_size,4
aplabel aPsafe_get_orig_size,4
pushad
mov esi, [esp + 36] ; esi -> buffer
mov ebx, [esi] ; ebx = header.tag
sub eax, eax ; eax = 0
cmp ebx, 032335041h ; check tag == 'AP32'
jne short .return_eax
mov ebx, [esi + 4] ; ebx = header.header_size
cmp ebx, byte 24 ; check header_size >= 24
jb short .return_eax
mov eax, [esi + 16] ; eax = header.orig_size
.return_eax:
mov [esp + 28], eax ; return unpacked length in eax
popad
apret 4
%ifdef _OBJ_
section apdata
%endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -