Skip to main content
eick-at moodle
  • Home
  • Calendar
  • More
You are currently using guest access
Log in
eick-at moodle
Home Calendar
Expand all Collapse all
  1. LF 2: IT-Systeme
  2. Assemblerprogrammierung
  3. Assemblerprogramm anpassen

Assemblerprogramm anpassen

Completion requirements
Opened: Thursday, 22 November 2018, 12:00 AM
Due: Friday, 23 November 2018, 12:00 AM

Sie werden angewiesen, ein vorhandenes Assemblerprogramm anzupassen:

Das Programm soll nach Eingabe eines Buchstabens rückwärts alle Buchstaben bis zum 'a' ausgeben.

Beispiel:

Nach Eingabe eines k wird

kjihgfedcba

ausgegeben.

(Geübte Programmierer verändern das Programm zusätzlich so, dass Zeichen aufwärts bis zum 'z' ausgegeben werden.

klmnopqrstuvwxyz)

Die Aufgabe kann nur gelöst werden, wenn das folgende Programm verstanden wurde. Unten wird eine typische Vorgehensweise hierfür vorgeschlagen.

Programmcode

org 100h

start: mov dx, txt1
mov ah, 9h
int 21h
mov ah, 1h
int 21h
cmp al, 57
ja error
cmp al, 49
jb error

count: sub al, 1
mov dl, al
mov ah, 02h
int 21h
cmp al, 48
ja count

ende: mov al, 0h
mov ah, 4Ch
int 21h

error: mov dx, txt2
mov ah, 9h
int 21h
jmp start

section .data
txt1: db 'Zahl von 1-9 eingeben:', 13, 10, '$'
txt2: db 13, 10, 'Fehler: Zahl ist nicht zwischen 1-9!', 13,10,'$'


Vorgehensweise


  1. Assemblieren Sie das Programm und führen Sie es aus!

  2. Beschreiben Sie die Ausgabe des Programms!

  3. Wie verhält sich das Programm bei fehlerhaften Eingaben?

  4. Was leisten die folgenden Assemblerbefehle?

    cmp
    ja
    jb
    jmp
  5. Was leistet der MSDOS-Funktionsaufruf INT 21 mit den Codes

    01h
    02h
  6. Kommentieren Sie den Quellcode!

  7. Zeichnen Sie den Programmablaufplan PAP des Programms?
    Benutzen Sie dabei das Programm PAP-Designer.


You are currently using guest access (Log in)
Data retention summary
Get the mobile app
Powered by Moodle