الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

بليز بليز بليز مساعده

مغلق
بدأه butterfly_girl في 6 يناير 2007 · 8 رد · 1,261 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا مبتدئه في لغة الاسمبلي وحتاجه مساعدتكم في حل البرنامج التالي:

Write a program tells the user to enter two binary numbers of up to 8 digits each and prints their sum on the next line in biary

then tells us is the sum odd or even

وفي شي تاني

ممكن اعرف ايش الكود اللي اقدر احول من نظام DECIMAL

إلى نظام

HEXADICIMAL

بليز محتاجه مساعدتكم

وشكرا لكم مقدما

#2

السلام عليكم ورحمة الله وبركاته

يجب عليكي التفكير ومحاولة البرمجة بنفسك

فجميع لغات البرمجة لا تفهم الا بالمحاولة الشخصية

حاولت قبل شوي اني اكتب الكود اللي بياخد من اليوزر رقم باينري من 8 خانات

النتيجة كانت:


push ax


mov bl,8
mov cl,7
l1: mov ah,1
int 21h
sub al,30h
shl al,cl
pop dx
add dl,al
push dx
dec cl
dec bl
cmp bl,0
jne l1
		mov ax,0000h

ENG-GAZA.GIF
#3

السلام عليكم.

فعلا اختي butterfly_girl ف Eng_Gaza على حق ,ولا بد من مجهود شخصي.

بالنسبة لل decimal to hexadecimal هذا هو الكود , وحاولي تحليله stp by step والله ولي التوفيق.

stack   segment 'stack'
		dw 50 dup(?)
stack ends

code	segment 'code'
		assume cs:code,ss:stack,ds:code
		extrn readk:far
		extrn echo:far
		extrn print:far
org 100h

nl	  db '\n'
ison	db " = "
num	 db 4 dup(?)
mesg	db "Give four numbers: "
mesgl   equ $-mesg

count   proc near
		mov ax,0
c1:	 cmp bx,cx
		jl c2
		sub bx,cx
		add ax,1
		jmp c1
c2:	 ret
count   endp

start:  mov ax,code

		mov ax,stack
		mov ss,ax
		mov ax,code
		mov ds,ax

init:   mov cx,mesgl
		mov dx,offset mesg
		mov ah,40h
		int 21h

		mov cx,1000
		mov bx,0000h
		mov ax,0000h

l1:	 call readk
		cmp al,51h
		jz quit
		cmp al,71h
		jz quit
		cmp al,30h
		jl l1
		cmp al,39h
		jg l1
		mov [num],al
		call echo
		sub al,30h
		mul cx
		add bx,ax
		mov ax,0000
		mov cx,100

l2:	 call readk
		cmp al,51h
		jz quit
		cmp al,71h
		jz quit
		cmp al,30h
		jl l2
		cmp al,39h
		jg l2
		mov [num+1],al
		call echo
		sub al,30h
		mul cx
		add bx,ax
		mov ax,0000
		mov cx,10

l3:	 call readk
		cmp al,51h
		jz quit
		cmp al,71h
		jz quit
		cmp al,30h
		jl l3
		cmp al,39h
		jg l3
		mov [num+2],al
		call echo
		sub al,30h
		mul cx
		add bx,ax
		mov ax,0000
		jmp l4

quit:   mov dx,offset nl
		mov cx,1h
		mov ah,40h
		int 21h
		mov ax,4c00h
		int 21h

init1:  jmp init


l4:	 call readk
		cmp al,51h
		jz quit
		cmp al,71h
		jz quit
		cmp al,30h
		jl l4
		cmp al,39h
		jg l4
		mov [num+3],al
		call echo
		sub al,30h
		add bx,ax
		mov ax,0000
		sub bx,0a00h

l5:	 call readk
		cmp al,13
		jnz l5

		mov al,13
		call echo
		mov al,10
		call echo

		mov al,[num]
		call echo
		mov al,[num+1]
		call echo
		mov al,[num+2]
		call echo
		mov al,[num+3]
		call echo
		mov al,3dh
		call echo

		mov ax,bx
		mov cl,12
		sar ax,cl
		and al,0fh
		call prhex

		mov ax,bx
		mov cl,8
		sar ax,cl
		and al,0fh
		call prhex

		mov ax,bx
		mov cl,4
		sar ax,cl
		and al,0fh
		call prhex

		mov ax,bx
		and al,0fh
		call prhex

		mov al,13
		call echo
		mov al,10
		call echo

		jmp init1

prhex   proc near
		cmp al,9
		jg p1
		add al,30h
		call echo
		ret
p1:	 add al,37h
		call echo
		ret
prhex   endp

code ends

end start

تم تعديل هذه المشاركة بواسطة Xacker في 11 يناير 2007 في 03:26

#4

نسيت ان اذكر بان هذا الكود decimal to hexadecimal ماخود من الموقع التالي :

http://ray.cslab.ece.ntua.gr/~gtsouk/src/n...086/dec2hex.asm

#5

ربي يعطيكم العاااااااااااااااااااافيه ويرزقكم الجنه

والله اشكركم كثير على مساعدتي

والله حاولت وحاولت وحاولت احلو .. حليت جزء من البرنامج والجزء اللي ما عرفتو طرحته عليكم .. من جد عصرت مخي بس مافي فايده

اللغه هذي صعبة الفهم .. انا لي 3 سنين بأدرس C++ وفجأه يصير تغيير على لغه تانيه فحاسه بصعوبه كبيره

بس والله جزاكم الله خير عالمساعده .. ربنا يجعلها في ميزان حسناتكم

تحيتي لكم

#6

ممكن تكتبي الكود بالمشاركة

وإن شاء الله بنساعدك فيه

اخي العزيز bitofsoul

في الكود اللي ادرجته

call readk

لم اجد readk

في بداية الكود موجود

extrn readk:far

كيف تتنفذ هذه التعليمة ؟؟

call readk
ENG-GAZA.GIF
#7

السلام عايكم.

هذا الكود له 3 مراجع مكتبية هي كالاتي :

*********************************************
readk.asm:																													   
lib	 segment 'code'
		assume cs:lib
		public readk

readk   proc far
		push dx 
readk1: mov ah,6
		mov dl,0ffh
		int 21h
		je readk1
		pop dx
		ret
readk   endp
lib	 ends
		end

******************************************
print.asm :																															 

lib	 segment 'code'
		assume cs:lib
		public print
print   proc far
		mov ah,40h
		int 21h
		ret
print   endp
lib	 ends
		end 

*********************************************
echo.asm:																															 

lib	 segment 'code'
		assume cs:lib
		public echo
echo	proc far
		push dx
		mov ah,6
		mov dl,al
		int 21h
		pop dx
		ret
echo	endp
lib	 ends

end

و الله ولي التوفيق.

تم تعديل هذه المشاركة بواسطة Xacker في 11 يناير 2007 في 03:27

#8

ان شئتم ادمجتم هذه الكودات الثلات في كود واحد مع dec2hex.asm , او تتروكونها متفرقة كما هي في تلك المكتبات.

#9

جزاك الله الف خير أخي العزيز bitofsoul

تحياتي

ENG-GAZA.GIF

هذا الموضوع مغلق.

مواضيع مشابهة