Untitled
unknown
plain_text
2 months ago
672 B
4
Indexable
; Register allocation: ; EAX = accumulator / general working register ; EBX = a ; ECX = i ; EDX = j ; ESI = stores a/6 temporarily ; Step 1: a / 6 MOV EAX, a ; load a into EAX CDQ ; sign-extend EAX into EDX for division MOV EBX, 6 ; divisor = 6 IDIV EBX ; EAX = a / 6 MOV ESI, EAX ; save a/6 into ESI ; Step 2: 10 - j MOV EAX, 10 ; EAX = 10 SUB EAX, j ; EAX = 10 - j ; Step 3: i * (10 - j) IMUL EAX, i ; EAX = i * (10 - j) ; Step 4: (a/6) + i*(10-j) ADD EAX, ESI ; EAX = a/6 + i*(10-j) ; Step 5: store result MOV res, EAX ; res = final answer
Editor is loading...
Leave a Comment