Nuk eshte loje fjalesh, mjafton te lexoni kodin dhe eshte i komentuar shume mire.
http://albanianwizard.org/Postokodin/37
Per te shkarkuar:
http://albanianwizard.org/mips_assembly_source_code_examples/programator/assembly.s
##################################
#albanianwizard.org #
#Licence GPLv3 #
#arditi – arditi{at}hush{pik}ai #
######################################################################################################################
#Asemblo instruksionin ori $8, $9, 0×0019 duke mbledhur 1 nga 1 pjeset e tij [opcode],[rt],[rs],[imm] #
#dhe duke e depozituar instruksionin ne menyre te rregullt duke respektuar formatin ne nje regjister ç’faredo. #
#########################################################################################################################################################
#Te assemblojm ORI-n #
#Formatin mund ta gjeni tek: #
#http://albanianwizard.org/informatika_shqiptare/arkitekture_kompiuterike/gjuha_e_programimit_assembly/formati-i-instruksioneve-ne-arkitekturen-mips/ #
#Ne kete ushtrim do te shohim se si duke mbledhur copeza kodi mund te arrijm tek instruksioni i deshiruar. #
#Ne rastin tone eshte: ori $8,$9,0×0019 #
#########################################################################################################################################################
.text
.globl main
######################################################################################
# INTRO #
#ori $8, $9, 0×0019 eshte i barabart me isntruksionin 0×35280019 #
#ori ka opcode 1101 == 13 ne dec ose D ne hex #
#Shohim qe ka 1 operand dhe 1 regjister destinacioni dhe 1 vlere te menjehershme #
#Operandi [rs]= $9 / 0×9 #
#Destinacioni [rt]= $8 / 0×8 #
#Vlera e menjehershme [Imm] = 0×0019 #
#Zgjedhim $24 si regjister per te asembluar instruksionin #
######################################################################################
main:
ori $11,$0,0xD # opcode /kodi i instruksionit ori (0xD)/13/1101 ===>$11
ori $12,$0,0×9 # operandi $9 / [rs] ===>$12
ori $13,$0,0×8 # destinacioni $8 /[rt] ===>$13
ori $14,$0,0×0019 # [Imm] = 0×0019 ===>$14
########################
# Rregullojm Bitet #
########################
sll $11,$11,26 # spostojm [opcode] ne pozicionin e vet pasi tani eshte 0000 0000 0000 0000 0000 0000 0000 1101
# dhe duhet te jete (si opcode) ne pozicionin e vet: 0011 0100 0000 0000 0000 0000 0000 0000
sll $12,$12,21 # spostojm [rs] ne pozicionin e vet duke e levizur majtas 21 njesi dhe kemi:
# 0000 0000 0000 0000 0000 0000 0000 1001 mbasi e spostojm 21 njesi majtas kemi
# 0000 0001 0010 0000 0000 0000 0000 0000 [kjo eshte pamja e regjistrit mbas egzekutimit te sll $12, $12, 21
sll $13,$13,16 # spostojm [rt] (destinacionin) ne vendin e vet pasi tani eshte :
# 0000 0000 0000 0000 0000 0000 0000 1000 dhe duhet te jete :
# 0000 0000 0000 1000 0000 0000 0000 0000 [kete e ben instruksioni
]
##################################################
#Fillojm spostojm bitet ne regjistrin e deshiruar#
##################################################
or $24,$24,$11 # Bejme OR [opcode] (R11) tek regjistri $24 i cili do te marri pamjen:
# 0011 0100 0000 0000 0000 0000 0000 0000
or $24,$24,$12 # Bejme OR [RS] qe e kemi “qendisur” tek regjistri 12 me $24 i cili tani duke u shtuar dhe [rs] do marri pamjen
# 0011 0101 0010 0000 0000 0000 0000 0000
or $24,$24,$13 # Kalojm me OR $13 [rt] (destinacionin) tek regjistri yne $24 qe tani do te mari pamje akoma me te kompletuar :
# 0011 0101 0010 1000 (0000 0000 0000 0000) == IMM
######################################################
#Na ngelen vetem 16 bitet e vleres se menjehershme
#
######################################################
or $24,$24,$14 # Se fundmi fusim dhe vleren tone 0×0019 qe ne sistemin binar paraqitet me : 0000 0000 0001 1001
# Dhe pamja perfundimtare e regjistrit do jete:
# 0011 0101 0010 1000 0000 0000 0001 1001
ori $2, $0, 10 # Po vdis re Vdis
syscall # Mbyllja e programit
################################################################
# PERFUNDIM #
#######################################################################################
#ori $8,$9,0×0019 <===> 0×35280019 <===> 0011 0101 0010 1000 0000 0000 0001 1001 #
#######################################################################################
Tags: programo ne assembly, si te programoj, ushtrim assembly