TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Do JanoszW - pytanko odnośnie assemblera , helmut 9/06/02 11:24 Ostatnio przeczytałem że znasz sie coś na tym. Chodzi mi czytanie z klawiatury. Wiem że do tego jest funkcja 0Ah , ale o to zapisuje w ds:dx, poza tym trzeba podobno zadeklarować bufor np. :
bufor db 8 dup(?)
Mam prośbe - czy (zakładając ,że masz to w jednym palcu) zebrać to do kupy i mniej więcej mi to wytłumaczyć ?. To taka moja wielka prośba - męcze sie z tym od rana i już mnie k.. bierze......
Z góry dzięki.Ctrl - Alt - helmut - delete - bledne zalozenie , JanoszW 9/06/02 11:38
to na dole to byl zart, nie znam sie na assemblerze :(
tzn kupilem kiedys ksiazke i napisalem pare programikow ale to bylo dosyc dawno.
Moze przyda ci sie ten kodzik (zrodlo: Artur Kowalczyk, Assembler)
.model small
.data
napis1 db 6,?,?,?,?,?,?, '$'
napis2 db 'wprowadziles nastepujacy lancuch:$'
.code
start:
mov ax,seg napis1
mov ds,ax
lea dx,napis1
mov ah,0Ah
int 21h
lea dx,napis2
mov ah,9
int 21h
lea dx,napis1
add dx,2
int 21h
mov ah,4ch
int 21h
end start
end
program pozwala na wczytanie 5 znakow z klawiatury a nastepnie wyswietlenie ich. - To dużo wyjaśnia , helmut 9/06/02 12:19
W segmencie danych dekleracja bufora jest chyba tą linią:
napis1 db 6,?,?,?,?,?,?, '$'
Później już kumam - do dx wprowadzam adres bufora (lea dx,napis1) i czytanie (0ah), po czym przerwanie 21.
Zastanawia mnie tylko jedna rzecz:
Dlaczego adres wprowadzonych liter w dx jest zwiększny o dwa i od tego momentu działa - czyli co tam jest zapisywane na pierwszych dwóch miejscach w dx ?.
Jeszcze raz wielkie dzieki.Ctrl - Alt - helmut - delete - jezeli chodzi o , JanoszW 9/06/02 12:53
add dx,2 to jes to przesuniecie o 2 pozycje bo tam ma wejsc jeden bajt okreslajacy ilosc znakow + enter, a lancuch znakow umieszczany jest wtedy w buforze od 3 bajtu.
Tak przynajmniej ja to rozumiem.
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|