Лекция: Пример отчета по лабораторной работе 1

Задача

Подсчитать количество цифр в данном тексте, заканчивающемся клавишей Esc (код 27).

С0-программа Результаты работы

int z; Тест от 9/10/08

main() 5

{ int c;

z=0; Кадр стека функции main

while ((c=getchar())!=27) ---------------------------------------

if (c>=48) 0 | Адрес предыдущего кадра |

if (c<=57) z=z+1; --------------------------------------

putchar(10); У функции main адрес возврата

putchar(13); отсутствует, т. к. она запускается

putn(z); из ОС.

putchar(10);

}

Oбъектная программа (приведена не полностью)

ASSUME CS:_KOM,SS:_STEK,DS:_DAN _KOM SEGMENT

;int z;

;main()

_main PROC FAR

MOV AX,_DAN

MOV DS,AX

MOV AX,_STEK

MOV SS,AX

LEA SP,_DNOST

; int c;

SUB SP,2

PUSH BP

MOV BP,SP

; z=0;

MOV AX,0

MOV z,AX

; while ((c=getchar())!=27)

_CC1:

CALL _getchar

PUSH AX

POP AX

MOV 2[BP],AX

PUSH AX

MOV BX,27

POP AX

CMP AX,BX

MOV AX,1

JNE _CC3

SUB AX,AX

_CC3:

PUSH AX

.. .

; putn(z);

MOV AX,z

PUSH AX

CALL _putn

; putchar(10);

MOV AX,10

PUSH AX

CALL _putchar

;

POP BP

ADD SP,2

MOV AH,4CH

INT 21H

_main ENDP

INCLUDE std.asm _KOM ENDS _STEK SEGMENT STACK

DW 100 DUP (?) _DNOST DW ?

_STEK ENDS

_DAN SEGMENT

z DW ?

_DAN ENDS

END _main

; Компилятоp С0 от 10/04/08:

; колич. ошибок 0


Лабораторная работа № 2

Транслятор языка С0

Цель работы — изучение методов трансляции на примере компилятора C0.

Программа компилятора приведена в файле C0.c и приложении 3. Подпрограммы в ней расположены сверху вниз по иерархии подпрограмм. В приложении 2 подпрограммы перечислены по алфавиту с указанием их назначения и номеров строк текста, где они расположены.

еще рефераты
Еще работы по информатике