دقیقا برای قسمت(( فرد)) هیچ ایده ای ندارم.
ابتدا عدد را به رشته تبدیل کنید، بعد هر عدد که در یک بایت رشته ای هست را به عدد تبدیل کنید و مقایسه کنید که ببنید عدد زوج هست یا فرد بعد از این مرحله اعداد زوج و فرد را که اکستراکت کردید را مجددا در یک رشته دیگه به ترتیبی که گفتید ذخیره کنید و درانتها رشته را به یک عدد اعشاری تبدیل کنید
البته برنامه ساده ای در زبان سی میشه نوشت، ولی اگر بخواهید با اسمبلی باشه یکم کارتون سختتره اگر نخواهید از ماکروها و api ها استفاده کنید باید خودتون عدد را به رشته تبدیل کنید و باقی سناریو
مثلا یک همچنین کدی را میتونید در اسمبلی بنویسید برای تبدیل عدد به رشته (البته از حلقه و دستورات جدید استفاده نکردم برای اینکه بهتر متوجه بشید که چه کاری انجام شده)
num dd 65273
strnum db dup(0)
lea ax , [data]
mov ds , ax
mov es , ax
mov ax , [num]
mov bx , 10000d
div bx
mov word ptr [strnum+0] , ax
mul bx
mov cx , ax
mov bx , [num]
sub bx , ax
mov ax , bx
mov bx , 1000d
div bx
mov word ptr [strnum+1] , ax
mul bx
add cx , ax
mov bx , [num]
sub bx , cx
mov ax , bx
mov bx , 100d
div bx
mov word ptr [strnum+2] , ax
mul bx
add cx , ax
mov bx , [num]
sub bx , cx
mov ax , bx
mov bx , 10d
div bx
mov word ptr [strnum+3] , ax
mul bx
add cx , ax
mov bx , [num]
sub bx , cx
mov word ptr [strnum+4] , bx
بنابراین اعداد در آرایه strnum اکستراکت شده، وبه راحتی بهشون دسترسی دارید فقط کافی که هر عضو آرایه را به عدد تبدیل کنید
strnum={'6','5','2','7','3'}