Limbaj de asamblare (TASM)
Last Updated: Dec 25 2020 12:34, Started by
Cristina443
, Dec 22 2020 13:59
·
0

#1
Posted 22 December 2020 - 13:59

Buna ziua. Poate sa imi explice si mie cineva cum functioneaza programul acesta si ce face fiecare randulet scris. Va rog mult
![]() ![]() ![]() ![]() DOSSEG .MODEL SMALL .STACK 100h .DATA MAXIMUM_STRING_LENGTH EQU 1000 StringToReverse DB MAXIMUM_STRING_LENGTH DUP(?) ReverseString DB MAXIMUM_STRING_LENGTH DUP(?) .CODE mov ax,@data mov ds,ax mov ah,3fh mov bx,0 mov cx,MAXIMUM_STRING_LENGTH mov dx,OFFSET StringToReverse int 21h and ax,ax jz Done mov cx,ax push cx mov bx,OFFSET StringToReverse mov si,OFFSET ReverseString add si,cx dec si ReverseLoop: mov al,[bx] mov [si],al inc bx dec si loop ReverseLoop pop cx mov ah,40h mov bx,1 mov dx,OFFSET ReverseString int 21h Done: mov ah,4ch int 21h END |
#2
Posted 22 December 2020 - 15:31

pai tu vrei sa iti facem treaba ta? vii aici daca ai ceva nelamuriri, nu vii sa iti explicam tot programul ca nu suntem profesorii tai.
|
#3
Posted 22 December 2020 - 16:39

Cauta despre int 21H, practic programul tau pregateste registrii si datele pentru apelul int 21H.
Functie de datele prezente in AH, apelul int 21H face diverse chestii. Documentatia o gasesti si tu pe net, n-o stie nimeni pe de rost. Cat despre explicarea fiecarei liniute, sper ca glumesti. |
#4
Posted 22 December 2020 - 16:44

pai tu vrei sa iti facem treaba ta? vii aici daca ai ceva nelamuriri, nu vii sa iti explicam tot programul ca nu suntem profesorii tai. Nu mi-o lua īn nume de rću dar profesoara nu a venit de la īnceputul anului la ore, și nu o īnlocuiește nimeni, deaia am īntrebat |
#5
Posted 22 December 2020 - 16:46

Cauta despre int 21H, practic programul tau pregateste registrii si datele pentru apelul int 21H. Functie de datele prezente in AH, apelul int 21H face diverse chestii. Documentatia o gasesti si tu pe net, n-o stie nimeni pe de rost. Cat despre explicarea fiecarei liniute, sper ca glumesti. Multumesc frumos am sa caut, profesoara nu a venit deloc la ore și nu ne-a explicat nimeni acest program, cred ca am exagerat cu fiecare liniuta ![]() |
#6
Posted 22 December 2020 - 16:51

MAXIMUM_STRING_LENGTH EQU 1000 StringToReverse DB MAXIMUM_STRING_LENGTH DUP(?) ReverseString DB MAXIMUM_STRING_LENGTH DUP(?)presupun ca programul ofera textul de la dreapta la stanga |
#7
Posted 22 December 2020 - 17:00

Il executi pas-cu-pas prin debugger si urmaresti ce se intampla la fiecare linie. Se vor modifica valorile din registrii, memorie si se va citi/afisa in consola
http://spike.scu.edu...interrupts.html |
#8
Posted 22 December 2020 - 17:05

Primul apel int 21h citeste niste caractere dintr-un fisier.
Al doliea apel int 21h scrie cate un caracter, in bucla, in ordine inversata in prealabil de catre codul de dinainte. Ultimul apel int 21h iese din program. Deapănă-l si tu sa vezi cum lucreaza. |
#9
Posted 22 December 2020 - 17:14

#10
Posted 22 December 2020 - 18:53

Edited by sags, 22 December 2020 - 18:55. |
|
#11
Posted 23 December 2020 - 07:50

Va mulțumesc tuturor pentru rćspunsuri ❤️ am sa mai caut despre acest program, sa citesc pentru cultura mea generala
|
#12
Posted 24 December 2020 - 13:14

cauta pe net documentatie despre functii D.O.S. (int 21h); vei recunoaste usor ce functie e folosita in program daca vezi valoarea cu care se incarca registrul ah chiar inainte de apelul int 21h (ex. functia D.O.S. 4c hexa de terminare a unui program, de la sfarsitul programelului postat de tine, incarca in registrul ah valoarea 4c la sectiunea Done)
... cel putin asa imi aduc aminte, ca ultima data cand am programat ASM a fost acum 25 de ani ![]() Edited by marco71, 24 December 2020 - 13:16. |
#13
Posted 25 December 2020 - 06:20

După compilarea programului cred că rezultă un executabil pe 16 biți care nu rulează sub Windows. Ai nevoie de ceva emulator gen DosBox pentru testare. Există oare și compilator ASM pentru Windows 10?
|
#15
Posted 25 December 2020 - 12:34

După compilarea programului cred că rezultă un executabil pe 16 biți care nu rulează sub Windows. Ai nevoie de ceva emulator gen DosBox pentru testare. Există oare și compilator ASM pentru Windows 10? Cum altfel? Este ultimul pas necesar pentru a traduce codul scris in orice altceva in instructiuni pe care procesorul le poate rula direct (set nativ de instructiuni, cod masina). Wikipedia Edited by byteworks, 25 December 2020 - 12:35. |
|
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users