September Morn Update

This commit is contained in:
Ingy döt Net 2019-09-12 10:33:56 -07:00
parent 4e2d22a71d
commit aac6731f2c
6856 changed files with 141342 additions and 21127 deletions

View file

@ -0,0 +1,44 @@
/* ARM assembly Raspberry PI */
/* program formatNum.s */
/* use C library printf ha, ha, ha !!! */
/* Constantes */
.equ EXIT, 1 @ Linux syscall
/* Initialized data */
.data
szFormat1: .asciz " %09.3f\n"
.align 4
sfNumber: .double 0f-7125E-3
sfNumber1: .double 0f7125E-3
/* UnInitialized data */
.bss
.align 4
/* code section */
.text
.global main
main: @ entry of program
push {fp,lr} @ saves registers
ldr r0,iAdrszFormat1 @ format
ldr r1,iAdrsfNumber @ number address
ldr r2,[r1] @ load first 4 bytes
ldr r3,[r1,#4] @ load last 4 bytes
bl printf @ call C function !!!
ldr r0,iAdrszFormat1
ldr r1,iAdrsfNumber1
ldr r2,[r1]
ldr r3,[r1,#4]
bl printf
100: @ standard end of the program
mov r0, #0 @ return code
pop {fp,lr} @restaur registers
mov r7, #EXIT @ request to exit program
swi 0 @ perform the system call
iAdrszFormat1: .int szFormat1
iAdrsfNumber: .int sfNumber
iAdrsfNumber1: .int sfNumber1

View file

@ -0,0 +1,3 @@
o_form("/w9s0/\n", 7.125);
o_form("/w12d6p6/\n", -12.0625);
o_form("/w12d6p6/\n", 7.125);

View file

@ -0,0 +1,36 @@
procedure writeInFixedFormat(n: real);
const
wholeNumberPlaces = 5;
fractionalPlaces = 3;
zeroDigit = '0';
negative = '-';
var
signPresent: boolean;
i: integer;
begin
// NOTE: This does not catch “negative” zero.
signPresent := n < 0.0;
if signPresent then
begin
write(negative);
n := abs(n);
end;
// determine number of leading zeros
i := wholeNumberPlaces;
if n > 0 then
begin
i := i - trunc(ln(n) / ln(10));
end;
for i := i - 1 downto succ(ord(signPresent)) do
begin
write(zeroDigit);
end;
// writes n with
// - at least 0 characters in total
// - exactly fractionalPlaces post-radix digits
// rounded
write(n:0:fractionalPlaces);
end;