1 . נתון קטע התוכנית בשפת #C :
int x= 0, num = 5;
for(int i = 1;i <= num; i++)
for(int j = i+1; j <= num;j++)
x++;
ממש את קטע התוכנית באסמבלי:
data segment
x dw 0
num dw 5
jcounter dw ? ;jcounter -> j
ends
...
mov ax,num
mov cx,0 ; cx -> i
outerloop:
mov jcounter,cx
inc jcounter
innerloop: inc x
inc jcounter
cmp jcounter,ax
jle innerloop
inc cx
cmp cx,ax
jl outerloop
2 . כתוב קטע תוכנית המחשב !5 ומציב את התוצאה במשתנה res בגודל מילה.
הדרכה : n! = 1*2*3*...*n
res משתנה מכפלה ויש לאתחל אותו לערך 1.
res dw 1
...
mov cx,5 ; loop counter
mov ax,1
loop_for: mov res,cx
mul res
test dx,dx ;dx must be 0 לא חובה
jnz overflow לא חובה
loop loop_for
mov res,ax ;stotre result to res