السلام عليكم ورحمة الله
أنا كتبت الكود التالي ﻹنشاء ملف والكتابة داخله لكن عند تنفيذه لا يحصل شيء ؟؟ طبعا أنا أستخدم اللينكس وأستخدم nasm
;ASSEMBLY LANGUAGE ;BY ??? SECTION .DATA MSG1 DB "START" , 10 ERROR_CR DB"ERROR CREATE FILE" ,10 ERROR_OP DB "ERROR OPEN FILE" ,10 ERROR_WR DB " ERROR WRITE IN FILE" ,10 ERROR_CL DB"ERROR CLOSE FILE" ,10 LENMSG1 EQU $ - MSG1 LENCR EQU $ - ERROR_CR LENOP EQU $ - ERROR_OP LENWR EQU $ - ERROR_WR LENCL EQU $ - ERROR_CL FILE DB '/home/suli/na.txt' , 0 FORWR DB "PALESTINE WILL BE FREE" , 10 LENFORWR EQU $ - FORWR SECTION .TEXT GLOBAL _start _start: ;SHOW START MOV EAX , 4h MOV EBX , 1h MOV ECX , MSG1 MOV EDX , LENMSG1 INT 80H ;CREATE FILE MOV EDX , FILE MOV ECX , 00644Q MOV EAX , 08h INT 80H JC ERROR_CREATE ;OPEN FILE MOV EDX , FILE MOV EAX , 05h INT 80H JC ERROR_OPEN ;WRITE IN FILE MOV EDX , FORWR MOV CX , LENFORWR MOV EAX , 4h INT 80h JC ERROR_WRITE CMP EAX , ECX JNE ERROR ;CLOSE FILE MOV EDX , FILE MOV EAX , 06h INT 80h JC ERROR_CLOSE ;EXIT MOV EAX , 1h MOV EBX , 0h INT 80h ERROR_CREATE: MOV EAX , 4h MOV EBX , 1h MOV ECX , ERROR_CR MOV EDX , LENCR INT 80h JMP ERROR ERROR_OPEN: MOV EAX , 4h MOV EBX , 1h MOV ECX , ERROR_OP MOV EDX , LENOP INT 80h JMP ERROR ERROR_WRITE: MOV EAX , 4h MOV EBX , 1h MOV ECX , ERROR_WR MOV EDX , LENWR INT 80h JMP ERROR ERROR_CLOSE: MOV EAX , 4h MOV EBX , 1h MOV ECX , ERROR_CL MOV EDX , LENCL INT 80h JMP ERROR ERROR: MOV EAX , 01 MOV EBX , 0 INT 80h
وهذي الأوامر
nasm -f elf cr.asm
وهذا أمر اللينك
ld -s -o cr cr.o
./cr
يظهر التالي ::
START ERROR CREATE FILE ERROR OPEN FILE ERROR WRITE IN FILE ERROR CLOSE FILE
وعموما تصريح المجلد يلي بدي أحط فيه الملف يوزر ..