DUzun's Web
Programare, proiecte personale, divertisment

DUzun it's ME
 
\ 08 aprilie 2025, 06:36:01 \  
Conținut

pr05.asm

x
 
; Sa se scrie un program care sa inverseze semioctetul superior altui BL = 12h cu cel inferior a lui CH = 56h. 
.model small
.radix 16
.code
start:
; --- 1) ---
;incarcarea valorilor
    mov BL, 12
    mov CH, 56
;voi folosi AX si DX pentru transformarile necesare necesare
    mov AH, BL
    mov AL, BL
    mov DH, CH
    mov DL, CH
; --- 2) ---
;filtrez in xL doar semioctetul inferiori
    and AL, 0F  ; 0Fh = 00001111b
    and DL, 0F
; --- 3) ---
;cobor in semioctetul inferior al xH pe cel superior prin deplasare
    shr AH, 4  ; semibyte = 4 biti
    shr DH, 4
; --- 4) ---
;acum am in AH semioctetul superior BL si in DL semioctetul inferior CH
;schimb cu locul dupa cerintele problemei
    xchg AH, DL
; --- 5) ---
;acum asamblez inapoi valorile BL si CH din AX si DX, respectiv
;urc semioctetul inferior la locul lui in AH si DH
    shl AH, 4
    shl DH, 4
; --- 6) ---
;compun octetii din semiocteti
    or AH, AL ; ex: 1001 0000 or 0000 1010 = 1001 1010
    or DH, DL
; --- 7) ---
; mut valorile inapoi de unde le-am luat
    mov BL, AH
    mov CH, DH
term: jmp term
end start
; 1)
;  cs:0000 B312           mov    bl,12           ax 1212   Śc=0Ś
;  cs:0002 B556           mov    ch,56        Ś  bx 0012   Śz=0Ś
;  cs:0004 8AE3           mov    ah,bl        -  cx 5600   Śs=0Ś
;  cs:0006 8AC3           mov    al,bl        -  dx 5656   Śo=0Ś
;  cs:0008 8AF5           mov    dh,ch        -  si 0000   Śp=0Ś
;  cs:000A 8AD5           mov    dl,ch        -  di 0000   Śa=0Ś
; 2)
;  cs:0008 8AF5           mov    dh,ch           ax 1202   Śc=0Ś
;  cs:000A 8AD5           mov    dl,ch        Ś  bx 0012   Śz=0Ś
;  cs:000C 240F           and    al,0F        -  cx 5600   Śs=0Ś
;  cs:000E 80E20F         and    dl,0F        -  dx 5606   Śo=0Ś
; 3)
;  cs:0011 D0EC           shr    ah,1            ax 0102   Śc=0Ś
;  cs:0013 D0EC           shr    ah,1         Ś  bx 0012   Śz=0Ś
;  cs:0015 D0EC           shr    ah,1         -  cx 5600   Śs=0Ś
;  cs:0017 D0EC           shr    ah,1         -  dx 0506   Śo=0Ś
;  cs:0019 D0EE           shr    dh,1         -  si 0000   Śp=1Ś
;  cs:001B D0EE           shr    dh,1         -  di 0000   Śa=0Ś
;  cs:001D D0EE           shr    dh,1         -  bp 0000   Śi=1Ś
;  cs:001F D0EE           shr    dh,1         -  sp 0000   Śd=0Ś
; 4)
;  cs:0019 D0EE           shr    dh,1            ax 0602   Śc=0Ś
;  cs:001B D0EE           shr    dh,1         Ś  bx 0012   Śz=0Ś
;  cs:001D D0EE           shr    dh,1         -  cx 5600   Śs=0Ś
;  cs:001F D0EE           shr    dh,1         -  dx 0501   Śo=0Ś
;  cs:0021 86E2           xchg   dl,ah        -  si 0000   Śp=1Ś
; 5)
;  cs:0023 D0E4           shl    ah,1            ax 6002   Śc=0Ś
;  cs:0025 D0E4           shl    ah,1         Ś  bx 0012   Śz=0Ś
;  cs:0027 D0E4           shl    ah,1         -  cx 5600   Śs=0Ś
;  cs:0029 D0E4           shl    ah,1         -  dx 5001   Śo=0Ś
;  cs:002B D0E6           shl    dh,1         -  si 0000   Śp=1Ś
;  cs:002D D0E6           shl    dh,1         -  di 0000   Śa=0Ś
;  cs:002F D0E6           shl    dh,1         -  bp 0000   Śi=1Ś
;  cs:0031 D0E6           shl    dh,1         -  sp 0000   Śd=0Ś
6)
;  cs:0023 D0E4           or     ah,al          ax 6202   Śc=0Ś
;  cs:0025 D0E4           or     dh,dl       Ś  bx 0012   Śz=0Ś
;  cs:0027 D0E4           mov    bl,ah       -  cx 5600   Śs=0Ś
;  cs:0029 D0E4           mov    ch,dh       -  dx 5101   Śo=0Ś
; 7)
;  cs:0033 0AE0           or     ah,al           ax 6202   Śc=0Ś
;  cs:0035 0AF2           or     dh,dl        Ś  bx 0062   Śz=0Ś
;  cs:0037 8ADC           mov    bl,ah        -  cx 5100   Śs=0Ś
;  cs:0039 8AEE           mov    ch,dh        -  dx 5101   Śo=0Ś

Aici acumulez programe şi algoritmi interesanti alcătuiţi de mine (cu mici excepţii) pe parcursul studierii unor limbaje de programare.

Cea mai mare parte din ele sunt realizate în Pascal. 

Nu am scopul creării unui curs specializat sau a descrierii detaliate a anumitor limbaje, ci doar prezint informaţii utile, plus ceva exemple interesante...

 

Răsfoitorul de fișiere (File Browser):

Codul sursă al programelor este organizat în mape şi fişiere.

Paginile care conțin cod sursă de programe de regulă au un răsfoitor de fișiere în partea stangă a paginii reprezentat de un bloc cu titlul „File Browser”.

Pentru a vizualiza un program sau conţinutul unei mape, faceţi click pe numele fişierului / mapei. Dacă fişierul nu este textual, el se va descărca automat, iar dacă este textual, conținutul lui se va afișa într-un bloc pe centrul paginii.

Pentru a descărca un fişier, faceţi click pe dimensiunea (size) lui.

arr_d Limba / Language


 


arr_r Login
 
 
Loading...