Wysłano: Środa, 07 Grudnia 2005, 00:42 |
|
|
|
Mam takie zadanko:
Napisz program wypisujący ciąg znakiów (kod ASCII): 2, B, @, t, y, *,!,#
i wyprowadzający informację na którym miejscu od początku znajduje się wykrzyknik.
Ma ktoś może jakieś pojęcie jak to zrobić?
Z góry dzieki za pomoc. |
|
|
|
|
|
|
|
Wysłano: Piątek, 09 Grudnia 2005, 03:28 |
|
|
|
nie jestem pewien czy dziala, bo nie mam kompilatora przy sobie, ale moze pomoze
Kod: |
.386
dane SEGMENT
znaki db "2B@ty*!#"
znaki_end db ? ;zeby ulatwic policzenie znakow (liczba=znaki_end-znaki)
dane ENDS
kod SEGMENT
assume cs:kod, ds:dane
mov bx,SEG dane ;mowimy gdzie jest segment z danymi
mov ds,bx ;musimy skorzystac z posrednictwa bx, bo
;(w pentiumie nie mozna przeslac liczby do rej. segmentowego bezposrednio)
start:
mov cx,znaki_end-znaki ;ustawiamy dlugosc petli
mov bx,0 ;zaczynamy od znaku o indeksie 0
petla:
mov dl, znaki[bx] ; w dl znak do wypisania
mov ah, 02h ;w ah kod informujacy system ze mamy wyswietlac znak
int 21h ;wywolanie procedury systemowej ktora zinterpretuje dl i ah
inc bx ;przechodzimy do kolejnego znaku
loop petla ;skaczemy jesli nie przeszly wszystkie znaki
mov ax, 4C00H ;kod informujacy system ze mamy zakonczyc program
int 21H
kod ENDS
END start |
ten kod powinien drukowac znaki podane w "znaki".
i wyprowadzający informację na którym miejscu od początku znajduje się wykrzyknik. - ma to robic dynamicznie w zaleznosci od "znaki" czy po prostu wypisac liczbe 7? |
|
|
|
|
|
|
|
|
| Re: <Tassadar> Zadanie z Asemblera |
|
|
Wysłano: Poniedziałek, 12 Grudnia 2005, 17:52 |
|
|
|
No w tym problem że ma to robic dynamicznie w zaleznosci od "znaki".
Dzięki za pomoc. |
|
|
|
|
Kopiowanie i rozpowszechnianie materiałów w całości lub części jest niedozwolone. Wszelkie informacje zawarte w tym miejscu są chronione prawem autorskim.
|