السلام عليكم
من فضلكم شباب لدي تمرين بالمدرسة حول كتابة هده الخوارزمية بالاسمبلي 16 بت
var a,b,x : entier
debut
ecrire (" entrer le premiere chiffre : ")
lire (a)
ecrire ("entrer le deusieme chiffre")
lire (B)
x<--a
a<---b
b<---x
ecrire( "la valeur de premiere chiffre est :" a)
ecrire( "la valeur de deusieme chiffre est :" B)
Fin
Algo Calc
الخوارزمية مفهومة فقط لمن لا يفهم الفرنسية فكل ما في الامر انه لدينا متغيران عدديان يدخل المستخدم عدد في المتغير الاول تم التاني فيقوم البرنامج بعكس القيم :
يضع قيمة المتغير الاول في المتغير التاني تم يضع قيمة المتغير التاني في المتغير الاول ويطبع المتغيران
لقد كتبت الكود بسي بلس بلس
#include <conio.h>
using namespace std;
int main()
{
int a,b,x;
cout << "Entrer le primere chiffre" << endl;
cin >> a;
try {
if(cin.fail())
throw "faute1";
}
catch(...){cout<<"entrer un numero valide"<<endl;
cout <<"click entrer pour quitter....";
getch();
return 0;
}
cout << "Entrer le deusieme chiffre" << endl;
cin >> b;
try {
if(cin.fail())
throw "faute1";
}
catch(...){cout<<"vous avez entré un char"<<endl;
cout <<"click entrer pour quitter....";
getch();
return 0;
}
cout << endl;
x=a;
a=b;
b=x;
cout << "La valeur du primere chiffre est :\t" << a << endl;
cout << "La valeur du deusieme chiffre est :\t" << b << endl;
getch();
return 0;
}
#include <iostream>
لكن بالاسمبلي لم انجح وهده محاولتي
.stack 100
.data
o1 db 0ah,0dh,'chiffre 1:$'
o2 db 0ah,0dh,'chiffre 2:$'
.data ?
num1 db ?
num2 db ?
x db ?
.code
start:
mov ax,@data
mov ds,ax
mov es,ax
lea dx,o1
mov ah,9
int 21h
mov ah,1
int 21h
mov num1,al
lea dx,o2
mov ah,9
int 21h
mov ah,1
int 21h
mov num2,al
mov dx,num1
mov x,dx
mov dx,num2
mov num1,dx
mov dx,x
mov num2,dx
lea dx, num1
mov ah, 9
int 21h
lea dx, num2
mov ah, 9
int 21h
mov ax, 4c00h
int 21h
end start
.model small
يوجد اخطاء عند الترجمة
پأS±سë¸ Hح!rD‹èژہ¹D3ے¾َ¤‹×ں3ہ¾I|$‹ظè„ü‹—+ض&‰‹— - 1256,
Microsoft ® Macro Assembler Version 5.10
Copyright © Microsoft Corp 1981, 1988. All rights reserved.
calc.ASM(10): error A2063: Operand combination illegal
calc.ASM(30): error A2068: Cannot address with segment register
calc.ASM(39): error A2068: Cannot address with segment register
calc.ASM(42): error A2068: Cannot address with segment register
calc.ASM(43): error A2068: Cannot address with segment register
calc.ASM(45): error A2068: Cannot address with segment register
calc.ASM(46): error A2068: Cannot address with segment register
calc.ASM(48): error A2068: Cannot address with segment register
calc.ASM(49): error A2068: Cannot address with segment register
48776 + 446035 Bytes symbol space free
0 Warning Errors
9 Severe Errors
C:\masm>
C:\masm>masm calc;
ارجو مساعدتي شكرا لكم