Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Assembly Hakkında

Başlatan sariyarasa, 23 Nisan 2011, 22:48:45

sariyarasa

--------------------------------------------------------------------------------

Merhaba arkadaşlar, bir arkaşımın ödevi için çok basit bir bilgiye ihtiyacım var.

Temel bilgisayarın assemble dilindeki komutları kullanarak anabellekte A, B ve C adreslerinde bulunan bulunan sayılar üzerinde (A-B)+C işlemini yapıp, sonucu D adresine saklayan programı yazınız.

Assembly dilinde (A-B)+C işlemini yapan kodlara ihtiyacım var.

Bilgisi olupta tam hatırlayamayanlar için birkaç koda ulaştım:

ORG 0
LDA
CMA
INC
ADD A
ADD -B
ADD +C
STA E
HLT

Yardımlarınızı bekliyorum.

[Konu yanlış yerde ise taşınmasını  rica ediyorum]

z

#1
Yazilacak kodlar kullanacagin islemciye gore farklilik gosterir.

Verdigin kodlar icinden uygun olanlari secip yazacaksak;

         ORG PROG_ADR

        LDA    B       ; ACC=B
        CMA            ; ACC=-B (2' complement komutu diye varsaydim)
        ADD   A         ; ACC = A-B
        ADC   C         ; ACC = (A-B)+C
        STA    D         ; SONUC Adresine ACC'i yaz


Programda overflow durumu takip edilmedi.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

sariyarasa

ORG PROG_ADR     
LDA B
CMA
ADD A
ADC C
STA D

anladıgım kadarıyla program bu sekilde.  ';' den sonra yazılanlar acıklamaları.
sonunda HLT komutuna ihtiyac var mı?

z

HLT icin bir sey diyemeyecegim. Programi durduran komut varsayarsak konabilir.

CMA komutunun 2li komplemet aldigini varsaydim. Yok eger birli komplement aliyorsa

CMA yerine

CMA
INC

kullanmak gerekir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

sariyarasa

ORG PROG_ADR     
LDA B
CMA
INC
ADD A
ADC C
STA D
HLT

anladım bu sekilde olabiliyor.