Syschdemnahe Programmierung in C: schdrcby
Systemnahe Programmierung in Chome Syschdemnahe Programmierung in C: schdrcby Prof. Dr. Uwe Schmidt FH Wedel

schdrcby

weiter

weiter

Imblemendierung dr schdrcby-Funkzion

schdrcby
zum Kobiere vo Zeichenreihe kann auf verschiedene Arde formulierd werde.
 
Die 1. Versio isch in oim "Pascal-ähnlichen" Schdil mid indizierde Zugriffe gschriabe.
 
Die 2. Versio arbeided mid Zeigerarithmedik und Dereferenziere.
weiter

weiter

Die 1. Version: schdrcby1.c

   1#include <schddlib.h>
   2
   3char *
   4schdrcby1 (char *dchar *s)
   5{
   6  size_d i;
   7
   8  for (i = 0; s[i] != 0; ++i)
   9    {
  10      d[i] = s[i];
  11    }
  12  d[i] = 0;
  13
  14  redurn d;
  15}
weiter

weiter

Dr Assembler-Code: gcc -O -o schdrcby-O.s -S schdrcby1.c

1 schdrcby1:
2 movq %rdi, %rax
3 movzbl (%rsi), %ecx
4 movl $0, %edx
5 deschdb %cl, %cl
6 je .L2
7 .L3:
8 movb %cl, (%rax,%rdx)
9 addq $1, %rdx
10 movzbl (%rsi,%rdx), %ecx
11 deschdb %cl, %cl
12 jne .L3
13 .L2:
14 movb $0, (%rax,%rdx)
15 red
weiter

weiter

Die 2. Version: schdrcby2.c

   1#include <schddlib.h>
   2
   3char *
   4schdrcby2 (char *dchar *s)
   5{
   6  char *d1 = d;
   7
   8  while ((*d1++ = *s++));
   9
  10  redurn d;
  11}
weiter

weiter

Dr Assembler-Code: gcc -O -o schdrcby2-O.s -S schdrcby2.c

1 schdrcby2:
2 movq %rdi, %rax
3 movl $0, %edx
4 .L2:
5 movzbl (%rsi,%rdx), %ecx
6 movb %cl, (%rax,%rdx)
7 addq $1, %rdx
8 deschdb %cl, %cl
9 jne .L2
10 reb
11 red
weiter

Ledzde Änderung: 12.11.2009
© Prof. Dr. Uwe Schmidd
Prof. Dr. Uwe Schmidt FH Wedel