O‘ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
“KOMPYUTER TIZIMLARI” kafedrasi
Kompyuterni tashkil etilishi fanidan tayyorlagan
“Assemblerda dasturlash” mavzusidagi topshiriq uchun
H I S O B O T
830-21 guruh talabasi
Salomoov Hayotjon
KT kafedrasi asistenti
A.A.Temirov
Toshkent-2023
Mashg‘ultoning maqsadi : Assembler compilyatorlari orqali a(b-2c)+2 dasturini tuzish.
Dastur kodi:
a dw 5 ; a o'zgaruvchisini 3 ga tenglaymiz
b dw 2 ; b o'zgaruvchisini 5 ga tenglaymiz
c dw 3 ; c o'zgaruvchisini 1 ga tenglaymiz
result dw ? ; Natija uchun joy rezervlash
section .data
a dd 0 ; Define and initialize variable a
b dd 0 ; Define and initialize variable b
c dd 0 ; Define and initialize variable c
result dd 0 ; Define variable to store the result
section .text
global _start
_start:
; Calculate b - 2 * c
fld dword [b] ; Load b into the FPU stack
fld dword [c] ; Load c into the FPU stack
fld dword 2 ; Load 2 into the FPU stack
fmul ; Multiply 2 by c
fsub ; Subtract the result from b
; Multiply the result by a
fld dword [a] ; Load a into the FPU stack
fmul ; Multiply the result by a
; Add 2 to the result
fld dword 2 ; Load 2 into the FPU stack
fadd ; Add 2 to the result
; Store the final result
fstp dword [result] ; Store the top of the FPU stack in the result variable
; Exit the program
mov eax, 1 ; Prepare exit syscall number
xor ebx, ebx ; Exit status code 0
int 0x80 ; Call the kernel
|
Bizning dasturimizda a = 3, b = 5, c = 1 ga teng deb tanlab olindi. Shuning natijasida a(b-2c)+2 ifodaning qiymati 8 ga teng chiqdi;
Natija:
Dasturda foydalanilgan kodlarning qisqacha tafsifi:
Tahlil:
Ushbu kod a(b-2c)+2 formulasi bo'yicha hisoblashni amalga oshiradi. Kodning tahlili quyidagicha:
.data bo'limida a, b, c va result nomli o'zgaruvchilar uchun joy rezervlangan.
.text bo'limida dastur boshlanadi. _start etiketi dastur boshlanish nuqtasi sifatida aniqlangan.
a va b o'zgaruvchilarining qiymatlari mos registrlarga yuklanadi.
a va b qiymatlari qo'shiladi (2bc hisoblash uchun) va natija ax registrida saqlanadi.
c o'zgaruvchisining qiymati cx registriga o'zgartiriladi.
2bc qiymati hisoblanadi va cx registrida saqlanadi.
a(b-2c)+2 qiymati hisoblanadi va natija ax registrida saqlanadi.
Natija result o'zgaruvchisiga saqlanadi.
Natija ekranga chiqariladi.
Dastur yakunlanadi.
Maqsad: Ushbu dastur a(b-2c)+2 formulasi bo'yicha hisoblashni amalga oshiradi. Ushbu formulada a, b va c o'zgaruvchilaridan foydalaniladi va natija ekranga chiqariladi.
Xulosa:
Ushbu amaliy mashg’ulotda biz Asimbler dasturidan foydalanib turli dasturlar tuzishni amalyotda ko’rib o’ttik. Har bir talaba o’z variantidagi tartib raqam bo’yicha o’ziga biriktirilgan misolni assembler tilida ishladi. Xususan men xam o’z dasturimni tuzdim. Ushbu ketma ketlikda bajardim:
Ushbu dastur a(b-2c)+2 formulasi bo'yicha hisoblashni maqsad qilgan. Ushbu formulada a, b va c o'zgaruvchilaridan foydalanilgan. Dastur quyidagi amallarni bajaradi:
.data bo'limida a, b, c va result nomli o'zgaruvchilar uchun joy ayriladi.
.text bo'limida dastur boshlanadi va _start etiketi dastur boshlanish nuqtasini ifodalaydi.
a va b o'zgaruvchilarining qiymatlari mos registrlarga yuklanadi.
b-2c ni hisoblash uchun ax registri ishlatiladi.
c o'zgaruvchisining qiymati cx registriga o'zgartiriladi.
a(b-2c) ni hisoblash uchun cx registri ishlatiladi.
a(b-2c)+2 ni hisoblash uchun ax va cx registrlari ishlatiladi.
Natija result o'zgaruvchisiga saqlanadi.
Natija ekranga chiqariladi.
Dastur yakunlanadi.
Maqsad: Ushbu dastur a(b-2c)+2 formulasi bo'yicha hisoblashni amalga oshiradi. Ushbu formulada a, b va c o'zgaruvchilaridan foydalaniladi va natija ekranga chiqariladi.
Dostları ilə paylaş: |