Ekleme yapmak için kullanıcılardan n numaraları kabul etmek için derleme kodu yazıyorum. Giriş ve çıkış çıkışı çekilirken neden ve yön talimatları kullanılır?Montaj giriş ve çıkışında shl ve rulo kullanımı
Kodu: bunlar gibi en düşük yarım bayt görünmesi için bu, hex
üst 4 bit leftwise birinci rulo 16 basamak olarak RgX içeriğini görüntülemek için bir fonksiyonudur
takeno:
print msg2,len2 ;calls a macro to display "Enter number"
accept var2,17 ;accepts number in var2
xor rbx,rbx
mov rsi,var2 ;how rsi works as array or array pointer?
mov ch,16
mov cl,4
up:
shl rbx,cl ;Why this step ?
mov al,[rsi]
call asciitohex ;convers ascii input to hex
add bl,al
inc rsi
dec ch
jnz up
add [var3],rbx
dec byte[var1]
jnz takeno
xor rbx,rbx
mov rbx,[var3]
mov rsi,var2
mov ch,16
mov cl,4
display:
rol rbx,cl ;why rol?
mov al,bl
and al,0f ;what this line does?
call asciitohex
mov [rsi],al
inc rsi
dec ch
jnz display
Neden 'rol' kullandığınız
:burada da, bir örnek açıklayan bir ton daha söyler? Bu bir test mi? Bize kodun olduğunu söylüyorsun. 4 (cl) bitler tarafından kaydırılan –
, artı ve '' 0x0F ile kaydırır, bl üst nibble değerini döndürür. Örneğin. Eğer BL = a3 ise, daha sonra bir, bu yüzden onaltılık değerin üst yarısına kadar – Tommylee2k
@ Tommylee2k shl rbx görüntülemek isteyebilirsiniz, cl rol rbx, cl yerine çalışabilir mi? – daemon7osh