⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitfuncs.inc

📁 万能汇编工具
💻 INC
字号:
                save
                listing off   ; kein Listing 乥er diesen File

;****************************************************************************
;*                                                                          *
;*   AS 1.39 - Datei BITFUNCS.INC                                           *
;*   								            *
;*   Sinn : enth刲t Funktionen zur Bitmanipulation                          *
;* 									    *
;*   letzte 巒derungen : 30. 5.1993                                         *
;*                       11. 9.1993 Meldung nur im 1.Pass                   *
;*									    *
;****************************************************************************

		ifndef   bitfuncsinc    ; verhindert Mehrfacheinbindung

bitfuncsinc     equ      1

		if	 mompass=1
		 message "Standardbitfunktionen (C) 1993 Alfred Arnold"
		endif

;----------------------------------------------------------------------------
; erstmal einige Unterfunktionen:

; liefert eine Maske in der ab 'start' 'bits' Bit gesetzt sind, z.B. zum
; Ausmaskieren einzelner Bits:

mask            function start,bits,((1<<bits)-1)<<start

; das gleiche invers zum L攕chen von Bitgruppen:

invmask         function start,bits,~mask(start,bits)

; liefert die Bits 'start' bis 'start'+'bits'-1 aus 'x':

cutout          function x,start,bits,x&mask(start,bits)

;----------------------------------------------------------------------------
; einige h剈fig gebrauchte Sondermasken:

; oberes Byte eines 16-Bit-Wortes:

hi              function x,(x>>8)&255

; dito unteres Byte:

lo              function x,x&255

; obere H刲fte aus einem 32-Bit-Wort:

hiword          function x,(x>>16)&65535

; dito untere H刲fte:

loword          function x,x&65535

; Boolean-Funktionen, ob eine Zahl gerade oder ungerade ist:

odd             function x,(x&1)=1
even            function x,(x&1)=0

; liefert Bit 'n' aus 'x':

getbit          function x,n,(x>>n)&1

;----------------------------------------------------------------------------
; Schiebefunktionen:

; Schieben eines 'size'-Bit-Wortes um 'n' Stellen nach links oder rechts:

shln            function x,size,n,(x<<n)&mask(0,size)
shrn            function x,size,n,(x>>n)&mask(0,size-n)

; Rotation eines 'size'-Bit-Wortes um 'n' Stellen nach links oder rechts;
; der erste Term l勧t die restlichen Bits unver刵dert und kann bei Bedarf
; gel攕cht werden:

rotln           function x,size,n,cutout(x,size,32-size)|shln(x,size,n)|shrn(x,size,size-n)
rotrn           function x,size,n,cutout(x,size,32-size)|shrn(x,size,n)|shln(x,size,size-n)

                endif

                restore                 ; wieder erlauben

⌨️ 快捷键说明

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