# COEN 20 - Ch 6

Martin Rios-Cardenas (lvl 5)
Ch 6

### Preview this deck

Translate into assembly where x, y, z are int32_t

``z = (x < y) ? 6 : x ;``

Front

### 0.0

0 reviews

 5 0 4 0 3 0 2 0 1 0

Active users

1

All-time users

2

Favorites

0

Last updated

4 years ago

Date created

Nov 3, 2020

## Cards(4)

Ch 6

(4 cards)

Translate into assembly where x, y, z are int32_t

``z = (x < y) ? 6 : x ;``
Front
``````		LDR R0, x
LDR R1, y
CMP R0, R1   // comparing x to y by subtracting x to y
BGE EndIf    // if(x >= y) goto EndIf
Then:	LDR R0,=6	 // replace x in R0
EndIf:	STR	R0,z

``````
Back

Translate into assembly

``````uint16_t a, b ;
if (a > 0 &amp;&amp; a < 100)
b = b / 2``````
Front
``````		LDRH	R0, a
CMP		R0, 0
BLS		EndIf		// if a <= 0, goto EndIf
CMP		R0, 100
BHS		EndIf		// if a >= 100, goto EndIf
LDRH	R0, b
LDR		R1, =2
UDIV	R0, R0, R1
STRH	R0, b
EndIf:``````
Back

Translate into assembly where x,y is of int32_t

``````x = 0;
for (y = 1; y < 1000; y = 2*y){
x += y;
}
``````
Front
``````		LDR		R0, =0
STR		R0, x
LDR		R0, =1
STR 	R0, y
Top:	LDR		R0, y		// load y into R0
CMP		R0, 1000	// counter for y
BGE		Done		// if y >= 1000, goto Done
LDR		R1, x
ADD 	R1, R1, R0	// add y + x and store in R1
STR		R1, x		// store R1 into x
LSL		R0, R0, 1	// y = 2 * y
STR		R0, y
B		Top			// branch to label Top
Done:``````
Back

Translate into assembly with x,y,z as int32_t

``````if (x > 10)
if (x < 20)
y = 1
else
z = 0``````
Front
``````		LDR		R0, x
CMP		R0, 10
BLE		Done		// if x <= 10, goto Done
CMP		R0, 20
BGE		Else		// if x >= 20, goto Else
Then:	LDR		R0, =1
STR		R0, y		// y = 1
B		Done		// branch to Done
Else:	LDR		R0, =0
STR		R0, z		// z = 0
Done:
``````
Back