2009-09-15 2 views
5

Ben Microsoft tarafından geçmişte sorulan mülakat soruları numuneleri üzerinden online görünümlü ve bu geldi edildi:Microsoft ASM görüşme soru?

aşağıdaki asm bloğu ortak matematik fonksiyonu, nedir gerçekleştirir?

cwd xor ax, dx 
sub ax, dx 

birileri bu cevap ve bana cevap açıklar mısınız? Teşekkürler!!

Güncelleştirme: tamam, bu nedenle mutlak değeri hesaplar. Birisi bunu nasıl adım adım açıklayabilir? Yani Her bir talimatta hangi registerin ne yazılacağını ve hangi registerlar vb. üzerinde yapılan alu operasyonlarını açıklar. Teşekkürler!

+0

İnsanlar mülakatlarda soru soruyor mu? –

+1

Sadece geçmişte bir MS sorusunun şu şekilde gittiğini okudum: görüşme önünüze siyah bir kalem koyuyor ve "kırmızı bir kalem" den başka bir şey söylemiyor ... bu yüzden microsoft –

cevap

1

mutlak değerini Sadece AX üzerinde işlem yok

/EAX bulur - Daha hızlı Pentium ve daha yeni işlemciler sorunu üzerinde yapılan CWD talimatıdır edilebilir - Bir register (DX/EDX) yok eder . CWD'yi değiştirmek için, şu kombinasyonu kullanabilirsiniz: mov dx, ax sar dx, 15 (32-bit kayıtlar kullanılırsa, 31 yerine bir değerle kaydırın.)

cwd- sözcüğü çift kelimeye dönüştürün.

XOR ax, dx => ax = ax XOR dx

+0

Teşekkürler ... aslında bunun mutlak değeri nasıl bulduğuna dair ayrıntılı bilgi verir misiniz? yani talimatların adım adım ne yaptığını göstererek (ikincisini anladığımdan beri belki de sadece ilk talimat) –

+10

Dostum, bu ASSEMBLER. Bu adım adımdır. – Bombe

4

O (ax arasında) abs fonksiyon.

ax olumluysa, dx0 haline gelir ve hiçbir şey değişmez. ax negatif

ise, dx ikinin-tümleyici gösteriminde neg hesaplanması için iyi bilinen bir yöntem olan, ax~ax - (-1) sonuçlanan 0xffff olacaktır. DX'te çift kelime AX'te

7

cwd xor ax, dx

dönüştürme kelime: AX. İşaret korunur, değer korunur. Yani AX> = 0 ise, DX = 0 ve AX < 0 ise, DX = -1. AX == 0.

AX < 0 ise, XOR AX tüm bitlerini tersine eğer

XOR hiçbir şey yapmaz. Daha sonra, SUB, AX'e 1 ekler (veya -1, ne olursa olsun: P). Bu, 2'nin bir ikili sayıyı tamamlamasının hesaplanma şeklidir.

Sonuç olarak, bu komut dizisi AX'in mutlak değerini AX'e yerleştirir ve DX'i işarete göre ayarlar.