*

Lajme

Video e javës



   Shpejtesia e Google Chrome.


Diskutimet e fundit


*Ndegjoni Live: ayihRadio - OFF AIR


Pages: [1] |   Go Down
  Send this topic  |  Print  
Topic: assemblimi i nje instruksioni assembly ne assembler  (Read 2180 times)
« on: June 02, 2009, 05:24:36 PM »
albanianwizard Offline
respected member
Jr. Member

***
Posts: 99



 Huh
 Shocked
Shkarko
http://albanianwizard.org/mips_assembly_source_code_examples/programator/assembly.s
Code:
##################################
#albanianwizard.org              #
#Licence GPLv3                   #
#arditi - arditi{at}hush{pik}ai  #
######################################################################################################################
#Asemblo instruksionin ori $8, $9, 0x0019 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,0x0019 #
#########################################################################################################################################################
.text
.globl  main
######################################################################################
#                            INTRO      #
#ori $8, $9, 0x0019 eshte i barabart me isntruksionin 0x35280019      #
#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 / 0x9      #
#Destinacioni [rt]= $8 / 0x8      #
#Vlera e menjehershme [Imm] = 0x0019                                              #
#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,0x9        # operandi $9 / [rs]                               ===>$12
ori   $13,$0,0x8        # destinacioni $8 /[rt]                            ===>$13
ori   $14,$0,0x0019            # [Imm] = 0x0019                                   ===>$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 :D

######################################################
#Na ngelen vetem 16 bitet e vleres se menjehershme :D#
######################################################
or    $24,$24,$14      # Se fundmi fusim dhe vleren tone 0x0019 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 :P
syscall # Mbyllja e programit                                                 

################################################################
#                         PERFUNDIM                            #
#######################################################################################
#ori  $8,$9,0x0019  <===>  0x35280019  <===>  0011 0101 0010 1000 0000 0000 0001 1001 #
#######################################################################################
Logged

http://albanianwizard.org
(Blogu i studenteve shqiptare)
 
Tags:
Pages: [1] |   Go Up
  Send this topic  |  Print  
 
Jump to:  

SEKSIONE   Blogu  |  Galeria  |  Tage

Na kontaktoni | Tregoja mikut | Ndihme | Kerko forumet

English Information | FAQ | Ksalco




graphics by MakeItSimple Studios. ©2008, 2009, 2010, 2011 ayih Organization. Some rights reserved.