Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > две задачки в асм, для MIPS


Автор: the_behemoth 12.10.2007, 15:54
Всем привет! прошу помощи у асов ассемблера!  Задали две задачи на АСМ для MIPS-симулятора, и неделю на подготовку.
Задача 1: вывести строку наоборот(сзаду наперёд) с помощью процедур и индексированого обращения. Откопал пример вывода строки наоборот, но без процедуры итп:

Код

.text        
.globl __start 
__start:        
    la $t1,str    
nextCh:    lb $t0,($t1)    
    beqz $t0,strEnd    
    sub $sp,$sp,4    
    sw $t0,($sp)    
    add $t1,1    
    j nextCh    
strEnd:    la $t1,str    
store:    lb $t0,($t1)    
    beqz $t0,done    
    lw $t0,($sp)    
    add $sp,$sp,4    
    sb $t0,($t1)    
    add $t1,1
    j store

done:    la $a0,str    
    li $v0,4    
    syscall
    la $a0,endl    
    li $v0,4    
    syscall
    li $v0,10
    syscall        
    .data
str:    .asciiz "hello world"
endl:    .asciiz "\n"


Подскажите пожалста как создать процедуру и индекс. обращение?

Задача 2:  нужно создать процедуру которая меняет местами значения двух чисел.  Вот мой код:

Код

.text        
.globl __start    
__start:
    

    la $t0, str0    
    la $t0, str1    

    
    lb $t2,$t0        
    sb $t1,$t0        
    sb $t2,$t1        
    syscall            

    la $a0, str0    
    li $v0, 4        
    syscall            
    
    la $a0, str1    
    li $v0, 4        
    syscall            
    
    li v0, 10            
                syscall            
    
    .data
str0:    .asciiz "The first value: "
str1:    .asciiz "The second value: "


Подскажите что в нём не так, и что нужно сделать чтобы было так smile
Я в асм полный 0, а сдавать через неделю  smile  Заранее благодарен!

Автор: MAKCim 12.10.2007, 20:25
the_behemoth, 

M
MAKCim
Модератор: пользуйтесь тегом код!


Добавлено @ 20:29
Цитата(the_behemoth @  12.10.2007,  15:54 Найти цитируемый пост)
Подскажите пожалста как создать процедуру и индекс. обращение?

в GAS нет понятия процедуры
есть понятие символа в исполняемой секции
в данном случае
__start, nextCh, strEnd, store, done определяют такие символы

Автор: the_behemoth 14.10.2007, 14:10
Цитата(MAKCim @ 12.10.2007,  20:25)
в GAS нет понятия процедуры
есть понятие символа в исполняемой секции
в данном случае
__start, nextCh, strEnd, store, done определяют такие символы

хз, показал код учителю, он мне сказал что не хватает процедуры и индекс. обращения...
и что мне сделать со второй задачей? plz help, ибо сам не шарю 

Автор: MAKCim 14.10.2007, 16:04
Модератор: Сообщение скрыто.

Автор: the_behemoth 14.10.2007, 20:51
ок, и на том спасибо. подождём, может кто появится кто с ним знаком smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)