Operácie

ASM80 programy

Z SensorWiki

Verzia z 21:34, 1. november 2017, ktorú vytvoril Balogh (diskusia | príspevky)

Nulovanie pamäťového miesta

Intuitívne MVI A,00h ale lepšie je SUB A, ktoré je kratšie a aj nastaví príznaky. Porovnajte.

myX 	equ 0010h
          
        org 0000h
        mvi a,55h
        sta myX
        sub a		;mvi a,00h
        sta myX
        hlt


Súčet dvoch 8-bitových čísel

Prvý aj druhý sčítanec sú uložené v pamäti, výsledok chceme tiež tam. Ako vieme, že výsledok je OK?

                    CISLO     EQU 0x000D 
000D                          ORG 000DH   
000D   02 03 00               DB  02H,03H,00H
   
0000                          ORG 0000   
0000                START:    
0000   3A 0D 00               LDA  000DH   
0003   47                     MOV  B,A   
0004   3A 0E 00               LDA  000EH   
0007   80                     ADD  B   
0008   32 0F 00               STA  000FH   
000B   76                     HLT
	CISLO	EQU 0x000D 
			ORG 000DH   
			DB  02H,03H,00H
   
			ORG 0000   
START:    
			LDA  000DH   
			MOV  B,A   
			LDA  000EH   
			ADD  B   
			STA  000FH   
			HLT
                LXI H, 000Dh
                MOV A,M    ; prvy scitanec
                INX H
                ADD M      ; druhy scitanec
                INX H
                MOV M,A    ; uloz vysledok
                HLT

Nájdi väčšie z dvoch čísel a ulož ho na ďalšiu pozíciu v pamäti.

            .ORG    000DH 
            DB      03H,02H,00H 

            .ORG    0000 

            LXI     H,000Dh 
            MOV     A,M 
            INX     H 
            CMP     M 
            JNC     DONE 
            MOV     A,M 
DONE:       INX     H 
            MOV     M,A 
            HLT


Úlohy

  1. Vynulujte 5 bajtov pamäte od 030h
  2. Odložte do pamäte na adresu 030h až 034h hodnoty 1 až 5.
  3. Vymeňte obsah pamäťových miest 030h a 033h.
  4. Sčítajte obsah pamäťových miest 032h a 033h a výsledok uložte do 034h
  5. Odčítajte od 034h 031h a zapíšte späť do 034h
  6. Nájdite dvojkový doplnok čísla z 032h