Ana Sayfa
Amiga Dokumantasyon Projesi
Medya
Yardım
Ara
Giriş Yap
Kayıt
Merhaba,
Ziyaretçi
. Lütfen
giriş yapın
veya
üye olun
.
1 Saat
1 Gün
1 Hafta
1 Ay
Her zaman
Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz
Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.tr
Commodore
Commodore Yazılım
ORA ve AND
« önceki
sonraki »
Sayfa: [
1
]
Aşağı git
Gönderen
Konu: ORA ve AND (Okunma Sayısı 4531 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
wizofwor
Genel Yönetici
Mesaj Sayısı: 4.785
Gosub ile gidilen yerden goto ile dönen adam
ORA ve AND
«
:
Haziran 16, 2014, 10:47:43 ÖÖ »
Malumunuz VIC için bank seçerken $DD00 adresinin son iki bitini değiştirmek gerekiyor. Bunun kolayı STA kullanmak, doğrusu STA'dan önce ORA kullanmak diye biliyorum. Dolayısıyla aşağıdaki örneği anlamadım. Burada AND'i niye kullanıyoruz?
lda $DD00
and #%11111100
ora #%00000011
sta $DD00
Logged
Tanışma Sayfam
| GitHub:
C64 assembly örnekleri
,
C64 assembler üzerine notlar
nightlord
Uzman
Mesaj Sayısı: 558
Ynt: ORA ve AND
«
Yanıtla #1 :
Haziran 16, 2014, 11:21:42 ÖÖ »
and'in gerekli olup olmadigi su iki seye bagli
- orada su anda hangi deger var (00 01 10 veya 11)
- yeni yazmak istedigin deger ne
O yazmacin diger bitleri baska seyleri kontrol ediyor. biz o bitleri degistirmeden sadece bank seciminde kullanilan son iki bite yeni birsey yazmak istiyoruz. Ancak bu yazdigimiz sey iki bitlik bir deger ve o 2 bitten 1 veya 2'si 0 olabilir. O durumda and kullanmadan ora kullanirsak ve yazmak istedigimiz deger ornegin 01 ise ora komutu ikiler basamagindaki degeri degistirmeden sadece 1'ler basamagindaki degeri 1 yapmis olur. yani orada su anda 10 yaziyordu ve biz 01 yazmak istedik ancak sadece ora #01 diyerek o iki bitte 11 sonucunu elde ediyoruz. and $fc diyerek o iki biti once 0'lamis ardindan ora ile 1 olmasini istediklerimizi 1'lemis oluyoruz.
Bu ornekte verdigin bank hic degismeyecekse yani oraya her zaman 11 yazacaksan and'i optimizasyon amaci ile disarida birakabilirsin. sik kullanilan bir diger optimizasyon da sudur: eger iki bank arasinda gidip geleceksen, xor ile tek komutta farkli bitleri flipleyebilirsin.
Logged
wizofwor
Genel Yönetici
Mesaj Sayısı: 4.785
Gosub ile gidilen yerden goto ile dönen adam
Ynt: ORA ve AND
«
Yanıtla #2 :
Haziran 16, 2014, 11:58:48 ÖÖ »
Aşağıdaki gibi mi?
lda $DD00
and #%11111100
ora #%00000010
sta $DD00
...
lda $DD00
eor #%00000010
sta $DD00
...
lda $DD00
eor #%00000010
sta $DD00
Logged
Tanışma Sayfam
| GitHub:
C64 assembly örnekleri
,
C64 assembler üzerine notlar
witchdoktor
Uzman
Mesaj Sayısı: 6.238
Ynt: ORA ve AND
«
Yanıtla #3 :
Haziran 16, 2014, 13:54:48 ÖS »
nightlord güzel açıklamış ama ben de tuz biber olayım.
AND %11111100 ile 2-7. bitleri maskeleyip (içeriğini koruyup) ilk iki biti (bit 0 ve 1) sıfırlıyoruz.
ORA ile de daha önce sıfırlamış olduğumuz bit'lerden istediklerimizi set (1) ediyoruz.
Logged
Sayfa: [
1
]
Yukarı git
« önceki
sonraki »
Gitmek istediğiniz yer:
Gitmek istediğiniz yer:
-----------------------------
Genel Kategori
-----------------------------
=> Genel Sohbet
=> Proje
===> Proje Alım/Satım
=> DemoScene
=> Tanışma Forumu
-----------------------------
Commodore
-----------------------------
=> Commodore Genel
=> Commodore Yazılım
=> Commodore Donanım
===> C64DTV (C64 Direct-to-TV)
===> TheC64 / TheC64 Mini
=> Commodore Yayınları
=> Commodore Emulasyon
-----------------------------
Amiga
-----------------------------
=> Amiga Genel
=> Amiga Yazılım
=> Amiga Donanım
=> Amiga Yayınları
=> Amiga Emülasyon
-----------------------------
Diğer Nostaljik Bilgisayarlar
-----------------------------
=> IBM Uyumlular / Retro x86 Sistemler
=> FPGA/ARM Sistemler
=> Amstrad
===> Amstrad - Genel
===> Amstrad - Yazılım
===> Amstrad - Donanım
===> Amstrad - Yayınlar
===> Amstrad - Emulasyon
=> Apple
===> Apple - Genel
===> Apple - Yazılım
===> Apple - Donanım
===> Apple - Emulasyon
=> Atari
===> Atari - Genel
===> Atari - Yazılım
===> Atari - Donanım
===> Atari - Emulasyon
=> MSX Uyumlular
===> MSX - Genel
===> MSX - Yazılım
===> MSX - Donanım
===> MSX - Emulasyon
=> Oric
===> Oric - Genel
===> Oric - Donanım
===> Oric - Yazılım
===> Oric - Emulasyon
=> Sinclair
===> Sinclair - Genel
===> Sinclair - Yazılım
===> Sinclair - Donanım
===> Sinclair - Emulasyon
=> Diğer Bilgisayarlar
-----------------------------
Arcade Sistemler ve Oyun Konsolları
-----------------------------
=> Arcade Sistemler
=> Oyun Konsolları