Асемблер

  • Креатор на темата Креатор на темата tiger_s
  • Време на започнување Време на започнување
Член од
16 јули 2008
Мислења
20
Поени од реакции
0
За сите што сакаат да програмираат во асемблер, програмираат во асемблер или некој има потреба од помош во врска со асемблер.

Да се напише асемблерска програма MIPS процесор која чита 50 броеви од тастатура. За секој број се повикува процедура која испитува дали бројот е делив со 5. Ако е делив процедурата повикува нова процедура кога врши сумирање на сите брпеви кои НЕ СЕ деливи со 5. За крај главната програма ја печати сумата на екран

Имам потреба од решение на задачата па ако некој го знае нека го пише. фала

П.С Ако е можно во Асемблер 8085
 
Епа пиши што имаш направено до сега па ке ти помогнеме таму кај си заглавил. Јас знам ARM, не знам MIPS, ама логиката е иста.
 
asembler

dali moze da mi pomogne nekoj sto znae asmeble?


Објаснување на макро и на процедури и кога е подобро да се користи процедура, кога макро. Дали треба да се стават AX, BX, CX на стекот? Кои треба кои не треба?
Задача: напишете 2 програми (1 со процедура, и 1 со макро) кои ќе ги соберат вредностите на AX I BX во CX. Анализа со симулаторот кој регистер која вредност ја има.

Pozdrav
 
Aман бе, за првото прашање побарај на гугл, у било која книга за микропроцесори имаш за макроа vs процедури. На стек се ставаат оние регистри чија вредност се менува во следните наредби. Иначе наредбите се следниве, а ти докажи дека не си паразит така што ќе ги вметнеш во макро/процедура.

add ax, bx
mov cx,ax
 
Добро да го оставиме на страна прашањето. Имам проблеми со задачата ако може некој да помогне??
поздрав.
 
add ax, bx; собирање на регистрите при што збирот се става во ax
mov cx,ax; вредноста од ax (значи збирот од претходната наредба) оди во cx

Ете ти ја задачата. Треба уште да додадеш име и endm за макро, а endp за процедура. Ако користиш макро, место двете точки треба да имаш два пати по две точки (;;). Што сакаш појше?
 
Значи вака ке изгледа задачата пример за процедура
soberi proc
add AX,BX
mov CX,AX
ret
soberi endp

нели е ова мн едноставно, некој main да не треба да има??? Стварно не се многу разбирам ако можете помогнете ???
Поздрав
 
Значи вака ке изгледа задачата пример за процедура
soberi proc
add AX,BX
mov CX,AX
ret
soberi endp

нели е ова мн едноставно, некој main да не треба да има??? Стварно не се многу разбирам ако можете помогнете ???
Поздрав

Да. мислам дека така беше.
 
Значи вака ке изгледа задачата пример за процедура
soberi proc
add AX,BX
mov CX,AX
ret
soberi endp

нели е ова мн едноставно, некој main да не треба да има??? Стварно не се многу разбирам ако можете помогнете ???
Поздрав


Ако ти се бара само процедурата да ја напишеш тогаш само ова, али ако треба да ја повикаш процедурата, тогаш мора да имаш маин.
Пример:

%include "asm_io.inc"

segment .data

vlezmsg db "Vlez",0
izlezmsg db "Ajde sega chao",0


segment .text
global asm_main
asm_main:
enter 0,0
pusha


mov eax, vlezmsg
call print_string ;
call print_nl ;
mov eax, 5;
mov ebx, 5;
call soberi;
mov eax, izlezmsg;
call print_string;


soberi:
add eax,ebx;
mov ecx,eax;
call print_int
ret

popa
mov eax, 0;
ret
leave

Забелешка: Oва се 32 битни регистри, Extended.
И е пишувано во NASM x86.
 
Ај некој ако се разбира од Edsim8051 нека ми пише ПП да се договориме.
 

Kajgana Shop

Back
На врв Bottom