kernel:
int 80h ; Call kernel
ret

open:
push dword mode
push dword flags
push dword path
mov eax, 5
call kernel
add esp, byte 12
ret
kernel:
int 80h ; Call kernel
ret

open:
push dword mode
push dword flags
push dword path
mov eax, 5
call kernel
add esp, byte 12
ret
2 minutes ago
An assembly language program can do that as well. For example, we could open a file:
یک برنامهٔ نوشته شده در زبان همگذاری هم می‌تواند چنین کاری را انجام دهد. برای مثال، می‌توانیم یک پرونده را باز کنیم:
2 minutes ago
This convention is very convenient, and quite superior to the <trademark class="registered">Microsoft</trademark> convention used by <acronym><trademark class="registered">MS-DOS</trademark></acronym>. Why? Because the <trademark class="registered">UNIX</trademark> convention allows any program written in any language to access the kernel.
این روند بسیار راحت است، و نسبت به روند <trademark class="registered">Microsoft</trademark> که توسط <acronym><trademark class="registered">MS-DOS</trademark></acronym> استفاده شده است برتری کامل دارد. چرا؟ زیرا روند <trademark class="registered">UNIX</trademark> به هر برنامه‌ای که با هر زبانی نوشته شده است اجازهٔ دسترسی به هسته را می‌دهد.
4 minutes ago
By default, the FreeBSD kernel uses the C calling convention. Further, although the kernel is accessed using <function role="opcode">int 80h</function>, it is assumed the program will call a function that issues <function role="opcode">int 80h</function>, rather than issuing <function role="opcode">int 80h</function> directly.
به‌طور پیش‌فرض، هستهٔ FreeBSD از روند فراخوانیِ C استفاده می‌کند. به‌علاوه، گرچه هسته به‌وسیلهٔ <function role="opcode">int 80h</function> قابل دسترسی است، فرض بر این است که به جای صدور مستقیمِ <function role="opcode">int 80h</function>، برنامه تابعی را فراخوانی می‌کند که <function role="opcode">int 80h</function> را صادر می‌کند.
27 minutes ago
Default Calling Convention
رویهٔ فراخوانیِ پیش‌فرض
an hour ago
System Calls
فراخوان‌های سامانه
an hour ago
The standard <citerefentry><refentrytitle>ld</refentrytitle><manvolnum>1</manvolnum></citerefentry> linker comes with FreeBSD. It works with the code assembled with either assembler.
پیوند‌ دهندهٔ استاندارد <citerefentry><refentrytitle>ld</refentrytitle><manvolnum>1</manvolnum></citerefentry> با FreeBSD می‌آید و با کد همگذاری شده با هر همگذاری کار می‌کند.
an hour ago
The output of the assembler, like that of any compiler, needs to be linked to form an executable file.
خروجیِ همگذار، مانند سایر همگردان‌ها، برای شکل گرفتن یک پروندهٔ اجراپذیر نیاز به پیوند دادن دارد.
12 hours ago
The Linker
پیوند دهنده
12 hours ago
This chapter uses <application>nasm</application> syntax because most assembly language programmers coming to FreeBSD from other operating systems will find it easier to understand. And, because, quite frankly, that is what I am used to.
این فصل از قواعد نحوی <application>nasm</application> استفاده می‌کند زیرا فهم آن برای بیشتر برنامه‌نویسان زبان همگذاری که از دیگر سامانه‌های عامل به FreeBSD می‌آیند آسان‌تر است. و، زیرا صادقانه بگویم، همان چیزیست که من عادت کرده‌ام.
12 hours ago
Since you need a console driver to run DDB on, things are more complicated if the console driver itself is failing. You might remember the use of a serial console (either with modified boot blocks, or by specifying <option>-h</option> at the <prompt>Boot:</prompt> prompt), and hook up a standard terminal onto your first serial port. DDB works on any configured console driver, including a serial console.
از آنجاکه شما به یک گردانندهٔ پیشانه نیاز دارید تا DDB را بر روی آن اجرا کنید، اگر گردانندهٔ پیشانه خراب شود مسائل پیچیده‌تر می‌شود. ممکن است استفاده از پیشانهٔ سریال (یا با قطعه‌های آغازِ تغییریافته، یا با مشخص کردنِ <option>-h</option> در پیام وارهٔ <prompt>Boot:</prompt>)، و متصل کردن یک پایانهٔ استاندارد به اولین درگاه سریال خود را به‌ خاطر داشته باشید. DDB بر روی هر گردانندهٔ پیشانهٔ پیکر‌بندی شده کار می‌کند.
12 hours ago
Since you need a console driver to run DDB on, things are more complicated if the console driver itself is failing. You might remember the use of a serial console (either with modified boot blocks, or by specifying <option>-h</option> at the <prompt>Boot:</prompt> prompt), and hook up a standard terminal onto your first serial port. DDB works on any configured console driver, including a serial console.
از آنجاکه شما به یک گردانندهٔ پیشانه نیاز دارید تا DDB را بر روی آن اجرا کنید، اگر گردانندهٔ پیشانه خراب شود مسائل پیچیده‌تر می‌شود. ممکن است استفاده از پیشانهٔ سریال (یا با قطعه‌های آغازِ تغییریافته، یا با مشخص کردنِ <option>-h</option> در پیام وارهٔ <prompt>Boot:</prompt>)، و متصل کردن یک پایانهٔ استاندارد به اولین درگاه سریال خود را به‌ خاطر داشته باشید. DDB بر روی هر گردانندهٔ پیشانهٔ پیکر‌بندی شده کار می‌کند.
12 hours ago
;;;;;;; open flags
%define O_RDONLY 0
%define O_WRONLY 1
%define O_RDWR 2

;;;;;;; mmap flags
%define PROT_NONE 0
%define PROT_READ 1
%define PROT_WRITE 2
%define PROT_EXEC 4
;;
%define MAP_SHARED 0001h
%define MAP_PRIVATE 0002h

;;;;;;; stat structure
struc stat
st_dev resd 1 ; = 0
st_ino resd 1 ; = 4
st_mode resw 1 ; = 8, size is 16 bits
st_nlink resw 1 ; = 10, ditto
st_uid resd 1 ; = 12
st_gid resd 1 ; = 16
st_rdev resd 1 ; = 20
st_atime resd 1 ; = 24
st_atimensec resd 1 ; = 28
st_mtime resd 1 ; = 32
st_mtimensec resd 1 ; = 36
st_ctime resd 1 ; = 40
st_ctimensec resd 1 ; = 44
st_size resd 2 ; = 48, size is 64 bits
st_blocks resd 2 ; = 56, ditto
st_blksize resd 1 ; = 64
st_flags resd 1 ; = 68
st_gen resd 1 ; = 72
st_lspare resd 1 ; = 76
st_qspare resd 4 ; = 80
endstruc
;;;;;;; open flags
%define O_RDONLY 0
%define O_WRONLY 1
%define O_RDWR 2

;;;;;;; mmap flags
%define PROT_NONE 0
%define PROT_READ 1
%define PROT_WRITE 2
%define PROT_EXEC 4
;;
%define MAP_SHARED 0001h
%define MAP_PRIVATE 0002h

;;;;;;; stat structure
struc stat
st_dev resd 1 ; = 0
st_ino resd 1 ; = 4
st_mode resw 1 ; = 8, size is 16 bits
st_nlink resw 1 ; = 10, ditto
st_uid resd 1 ; = 12
st_gid resd 1 ; = 16
st_rdev resd 1 ; = 20
st_atime resd 1 ; = 24
st_atimensec resd 1 ; = 28
st_mtime resd 1 ; = 32
st_mtimensec resd 1 ; = 36
st_ctime resd 1 ; = 40
st_ctimensec resd 1 ; = 44
st_size resd 2 ; = 48, size is 64 bits
st_blocks resd 2 ; = 56, ditto
st_blksize resd 1 ; = 64
st_flags resd 1 ; = 68
st_gen resd 1 ; = 72
st_lspare resd 1 ; = 76
st_qspare resd 4 ; = 80
endstruc
13 hours ago
Very powerful editor, allowing search-and-replace on both strings and regular expressions (patterns), jumping to start/end of block expression, etc, etc.
ویرایشگری بسیار قدرتمند، که به شما اجازهٔ جست و جو و تعویض با هر دو رشته و عبارات باقاعده (الگوها)، پرش به شروعآغاز/پایان ساختمان عبارتعبارت قطعه (بلوک)، و غیره را می‌دهد.
13 hours ago
The other is <application>/usr/ports/devel/nasm</application>. It uses the Intel syntax. Its main advantage is that it can assemble code for many operating systems. It needs to be installed separately, but is completely free.
دیگری <application>/usr/ports/devel/nasm</application> است و از قواعد نحوی Intel پیروی می‌کند. برتری اصلی آن این است که می‌تواند کد را برای سامانه‌های عامل بسیاری همگذاری کند. و لازم است جداگانه نصب شود، اما کاملاً رایگان است.
15 hours ago
Two very different assemblers are available for FreeBSD. One is <citerefentry><refentrytitle>as</refentrytitle><manvolnum>1</manvolnum></citerefentry>, which uses the traditional <trademark class="registered">UNIX</trademark> assembly language syntax. It comes with the system.
دو نوع همگذار متفاوت برای FreeBSD در دسترس هست. یکی <citerefentry><refentrytitle>as</refentrytitle><manvolnum>1</manvolnum></citerefentry> است، که از قواعد نحویِ سنتیِ زبان اسمبلیِ <trademark class="registered">UNIX</trademark> پیروی می‌کند و به‌همراه سامانه می‌آید.
15 hours ago
The most important tool for assembly language programming is the assembler, the software that converts assembly language code into machine language.
مهم‌ترین ابزار برای برنامه‌نویسیٰ زبان همگذاری (اسمبلی) همگذار است، نرم‌افزاری که کد زبان همگذاری را به زبان ماشین تبدیل می‌کند.
15 hours ago
The most important tool for assembly language programming is the assembler, the software that converts assembly language code into machine language.
مهم‌ترین ابزار برای برنامه‌نویسیٰ زبان همگذار (اسمبلی) همگذار است، نرم‌افزاری که کد زبان همگذار را به زبان ماشین تبدیل می‌کند.
15 hours ago
The Assembler
همگذار
15 hours ago
The Tools
ابزارها
15 hours ago

Search