Nume | Descriere | Definire cu esc in C |
---|---|---|
nul | null byte | \0 |
bel | bell character | \a |
bs | backspace | \b |
ht | horizontal tab | \t |
np | formfeed | \f |
nl | newline | \n |
cr | carriage return | \r |
vt | vertical tab | |
esc | escape | |
sp | space |
; Primul program scris in limbaj de asamblare - forma simplificata de definire a segmentelor .model tiny .stack 100h .data Mesaj DB 'Primul program. Felicitari !',13,10,10,'$' ;CR,LF,LF,Term. .code start: mov ax,@data mov ds,ax ; se seteaza ds pentru a marca segmentul de date mov ah,9 ; functie DOS 09 - afisare sir terminat cu '$' mov dx,OFFSET Mesaj ; locul unde incepe Mesaj int 21h ; afisare mesaj pe ecran mov ah,4ch ; functiei DOS 4c terminare proces int 21h ; terminare program end start |
Turbo Assembler Version 5.0 09-26-08 08:55:05 Page 1 primul.ASM 1 ; Primul program scris in limbaj de asamblare - forma simplificata de definire a segmentelor 2 3 0000 .model tiny 4 0000 .stack 100h 5 0000 .data 6 0000 50 72 69 6D 75 6C 20+ Mesaj DB'Primul program. Felicitari !',13,10,10,'$' ;CR,LF,LF,Term. 7 20 70 72 6F 67 72 61+ 8 6D 2E 20 46 65 6C 69+ 9 63 69 74 61 72 69 20+ 10 21 0D 0A 0A 24 11 0021 .code 12 0000 start: 13 0000 B8 0000s mov ax,@data 14 0003 8E D8 mov ds,ax ; se seteaza ds pentru a marca segmentul de date 15 0005 B4 09 mov ah,9 ; functie DOS 09 - afisare sir terminat cu '$' 16 0007 BA 0000r mov dx,OFFSET Mesaj ; locul unde incepe Mesaj 17 000A CD 21 int 21h ; afisare mesaj pe ecran 18 000C B4 4C mov ah,4ch ; functiei DOS 4c terminare proces 19 000E CD 21 int 21h ; terminare program 20 end start Turbo Assembler Version 5.0 09-26-08 08:55:05 Page 2 Symbol Table Symbol Name Type Value ??DATE Text "09-26-08" ??FILENAME Text "primul " ??TIME Text "08:55:05" ??VERSION Number 0500 @32BIT Text 0 @CODE Text DGROUP @CODESIZE Text 0 @CPU Text 0101H @CURSEG Text _TEXT @DATA Text DGROUP @DATASIZE Text 0 @FILENAME Text PRIMUL @INTERFACE Text 000H @MODEL Text 1 @STACK Text DGROUP @WORDSIZE Text 2 MESAJ Byte DGROUP:0000 START Near16 DGROUP:0000 Groups & Segments Bit Size Align Combine Class DGROUP Group STACK 16 0100 Para Stack STACK _DATA 16 0021 Word Public DATA _TEXT 16 0010 Word Public CODE |
; Program demo pentru a fi rulat cu Turbo Debugger .model tiny .stack 100h .data Mesaj DB 'Acest program se ruleaza pas cu pas in Turbo Debugger !',13,10,10 DB 'Se calculeaza suma primelor 10 numere naturale',13,10,10, '$' .code start: mov ax,@data mov ds,ax ; se seteaza ds pentru a marca segmentul de date mov ah,9 ; functie DOS 09 pentru afisare sir terminat cu '$' mov dx,OFFSET Mesaj ;locul unde incepe Mesaj int 21h ; afisare mesaj pe ecran mov cx,0 mov ax,0 et1: add ax,cx ; se calculeaza suma inc cx ; se trece la noul numar natural cmp cx,11 ; am ajuns la 11 de numere ? jnz et1 ; reiau de la et1 daca nu am ajuns la 11 ; iesire daca am ajuns la 101 mov ah,4ch ; functiei DOS 4c terminare proces int 21h ; terminare program end start |
; Se afiseaza registrul AX sub forma binara folosind proceduri din modulul extern "proc_ext" ; Se folosesc procedurile externe init_afis si afis_ax aflate in modulul proc_ext .model tiny,pascal .stack 100h .code EXTRN init_afis:PROC EXTRN afis_ax:PROC start: call init_afis ; seteaza modul 80 X 25 caractere VGA 16 culori mov ax,05555h call afis_ax,21,'AX' ; afisez continutul lui AX pe randul 21 mov ah,4ch ; iesire DOS int 21h END start |
tasm /z %1.asm tlink %1.obj + proc_ext.obj %1 |
; Program scris in limbaj de asamblare - folosirea directivei EQU ; Aplicatia listeaza la imprimanta un sir de caractere .model small .stack 100h .data Mesaj DB 'Listare la dispozitivul asociat !',13,10,10 ;CR,LF,LF L_mes EQU 35 ; lungimea sirului ce urmeaza a fi tiparit .code start: mov ax,@data mov ds,ax ; se seteaza ds pentru a marca segmentul de date mov ah,40h ; functie DOS 40h pentru scriere la dispozitivul asociat mov bx,1 ; indicatorul(handler-ul) pentru ecran ( 0=input,1=output,4=printer) mov cx,L_mes ; lungimea mesajului mov dx,OFFSET Mesaj ; locul unde incepe Mesaj int 21h ; afisare mesaj pe ecran mov ah,4ch ; functiei DOS 4c terminare proces int 21h ; terminare program end start |
; Program scris in limbaj de asamblare - folosirea simbolului $ ; Aplicatia listeaza la imprimanta un sir de caractere .model small .stack 100h .data Mesaj DB 'Listare la dispozitivul asociat !',13,10,10 ;CR,LF,LF L_mes EQU $-Mesaj ;$ ia valoarea curenta a offset-ului .code start: mov ax,@data mov ds,ax ; se seteaza ds pentru a marca segmentul de date mov ah,40h ; functie DOS 40h pentru scriere la dispozitivul asociat mov bx,1 ; indicatorul(handler-ul) pentru ecran ( 0=input,1=output,4=printer) mov cx,L_mes ; lungimea mesajului mov dx,OFFSET Mesaj ; locul unde incepe Mesaj int 21h ; afisare mesaj pe ecran mov ah,4ch ; functiei DOS 4c terminare proces int 21h ; terminare program end start |
; Primul program scris in limbaj de asamblare .model tiny,pascal .stack 200h .code org 100h begin: jmp start Mesaj DB 'Program ce foloseste directiva ORG !',13,10,10,'$' ;CR,LF,LF,Terminator start: mov ax,seg Mesaj mov ds,ax ; se seteaza ds pentru a marca segmentul de date mov ah,9 ; functie DOS 09 pentru afisare sir terminat cu '$' mov dx,OFFSET Mesaj ; locul unde incepe Mesaj int 21h ; afisare mesaj pe ecran mov ah,4ch ; functiei DOS 4c terminare proces int 21h ; terminare program end begin |
; Program scris in limbaj de asamblare ce foloseste forma simplificata de definire a segmentelor ; Se tipareste litera "x" folosind serviciul 2 de tiparire caracter ; Se foloseste registrul es pentru a adresa datele din zona data .model small .stack 200h .data litera db 'X' .code start: mov dx,@data mov es,dx ; se seteaza es pentru a marca segmentul de date mov bx,OFFSET litera ; locul unde s-a salvat litera X mov dl,es:[bx] ; incarcare registru dl cu continutul locatiei de la adresa es:[bx] mov ah,2 ; functie DOS 02 pentru afisare caracter aflat in dl int 21h ; afisare mesaj pe ecran mov ah,4ch ; functiei DOS 4c terminare proces int 21h ; terminare program end start |
; Primul program scris in limbaj de asamblare - forma simplificata de definire a segmentelor ; Asteptarea apasarii unei taste .model tiny .stack 100h .data Mesaj DB 'Acest program foloseste functia DOS 01h Keyboard Input ',13,10,10 DB 'Apasati orce tasta !',13,10,10,'$' Mesaj2 DB 'La revedere!',13,10,10,'$' .code start: mov ax,@data mov ds,ax ; se seteaza ds pentru a marca segmentul de date mov ah,9 ; functie DOS 09 - afisare sir terminat cu '$' mov dx,OFFSET Mesaj ; locul unde incepe Mesaj int 21h ; afisare mesaj pe ecran mov ah,01h ; functie DOS 01 - astept apasarea unei taste int 21h mov ah,9 ; functie DOS 09 - afisare sir terminat cu '$' mov dx,OFFSET Mesaj2 ; locul unde incepe Mesaj2 int 21h ; afisare mesaj pe ecran mov ah,4ch ; functiei DOS 4c terminare proces int 21h ; terminare program end start |
; Primul program scris in limbaj de asamblare in care se utilizeaza forma completa de definire a segmentelor stiva segment word para stack 'stack' dw 10 dup(?) stiva ends date segment word public 'data' mesaj db 'Program ce utilizeaza forma completa de definire a segmentelor',13,10,'$' date ends cod segment word public 'code' assume cs:cod, ds:date, ss:stiva start: mov ax,seg date mov ds,ax ; se seteaza ds pentru a marca segmentul de date mov ah,9 ; functie DOS 09 pentru afisare sir terminat cu '$' mov dx,OFFSET mesaj ; locul unde incepe Mesaj int 21h ; afisare mesaj pe ecran mov ah,4ch ; functiei DOS 4c terminare proces int 21h ; terminare program cod ends end start |