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

📄 p12.asm

📁 assembley language for MASM
💻 ASM
字号:
TITLE Separate even and odd numbers in the array for assembler
.model small
.STACK 100
.data
        ARRAY    DB 12H,23H,26H,63H,25H,86H,2FH,33H,10H,35H
        ARR_ODD  DB 10 DUP (?)
        ARR_EVEN DB 10 DUP (?)
.code
START:  MOV AX,@data    ; [ Initialise
        MOV DS,AX       ;   data segment ]
        MOV CL,10       ; Initialise counter
        XOR DI,DI       ; Initialise odd_pointer
        XOR SI,SI       ; Initialise even_pointer
        LEA BP,ARRAY    ; Initialise array base_pointer
BACK:   MOV AL,DS:[BP]  ; Get the number
        AND AL,01H      ; Mask all bits except LSB
        JZ  NEXT        ; If LSB = 0 go to next
        LEA BX,ARR_ODD  ; [ Otherwise 
        MOV AH,[BX+DI]  ;   initialse pointer to odd array 
        MOV ARR_ODD,AH  ;   and save number in odd array ]
        INC DI          ; Increment odd_pointer
        JMP SKIP
NEXT:   LEA BX,ARR_EVEN ; [ Initialise pointer 
        MOV AH,[BX+SI]  ;   to even array and save number
        MOV AH,ARR_EVEN ;   in even array
        INC SI          ; Increment even_pointer

SKIP:   INC BP          ; Increment array base_pointer
        DEC CL          ; Decrement counter
        JNZ BACK        ; if not 0 go to back
        END START

⌨️ 快捷键说明

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