Loops/While: Difference between revisions

1,678 bytes added ,  10 years ago
Line 3:
=={{header|0815}}==
<lang 0815><:400:~}:_:%<:a:~$=<:2:=/^:_:</lang>
 
=={{header|360 Assembly}}==
Using binary arithmetic. Convert results to EBCDIC printable output.
<lang 360 Assembly>
WHILE CSECT , This program's control section
BAKR 14,0 Caller's registers to linkage stack
LR 12,15 load entry point address into Reg 12
LA 13,0 inidicate caller no savearea
USING WHILE,12 tell assembler we use Reg 12 as base
XR 3,3 Register 3 zero.
XR 4,4 clear even divident reg
LA 5,1024 load odd divident reg
LA 9,2 divisor in reg 9
LA 8,WTOLEN address of WTO area in Reg 8
MVC WTOTXT,=C'1024'
WTO TEXT=(8) write to operator initial value 1024
LOOP DS 0H
DR 4,9 divide r4/5 by r9
CLR 3,4 less than zero?
BL RETURN yes, return
CVD 5,PACKED convert result to (packed) decimal
OI PACKED+7,X'0F' prepare unpack
XC WTOTXT,WTOTXT clear wto text
UNPK WTOTXT,PACKED packed decimal to zoned (printable)
WTO TEXT=(8)
B LOOP loop.
RETURN PR , return to caller.
WTOLEN DC H'4' fixed WTO length of four
WTOTXT DS CL4
PACKED DS CL8
END WHILE
</lang>
'''output''' (+ sign indicates "problem state" (non system key) execution
<pre style="overflow:scroll">
+1024
+0512
+0256
+0128
+0064
+0032
+0016
+0008
+0004
+0002
+0001
</pre>
 
=={{header|6502 Assembly}}==
Anonymous user