Hmm. ASCII ist nur ein 7-Bit-Zeichensatz; die 8-Bit-Erweiterungen sind
erst mit dem ANSI-Zeichensatz (Latin 1, CP1252) standardisiert worden.
Davor gab's verschiedene inkompatible Varianten - IBM-PC (CP437),
Macintosh, VC Amiga ... jeder Homecomputer machte das auf seine eigene
Art und Weise.
Wie auch immer, mit der von mit erwähnten Variante der
Übersetzungstabelle kannst Du in Deinem Quelltext mit ANSI-Codierung
(das ist die unter Windows übliche) arbeiten und konvertierst erst
unmittelbar vor Ausgabe ans Display. Dann musst Du Dir überhaupt keine
Gedanken um irgendwelche "Labels" machen und kannst in Deinem
Assemblerquelltext vernünftig mit Stringkonstanten arbeiten.
Der Geschwindigkeitsverlust dürfte vernachlässigbar sein, lediglich die
256 Bytes Tabelle vergrößern Deinen Code etwas.
Mit etwas mehr Mühe kannst Du die Tabelle auf 128 Bytes schrumpfen,
indem Du in dieser nur die Nicht-ASCII-Zeichen codierst und Zeichen <
0x7F gar nicht erst umwandelst.
Deine zweite Frage ist etwas missverständlich formuliert. Wenn Du einen
Chip von FTDI wie den FT232BM verwendest, dann hast Du auf Deinem PC
eine virtuelle serielle Schnittstelle, die Du mit normalen Programmen
wie eine echte Schnittstelle ansprechen kannst. Am anderen Ende kommen
normale serielle Signale mit TTL-Pegeln 'raus, die sich direkt mit der
UART eines µC verbinden lassen.