PDA

Просмотр полной версии : Две задачи в Turbo Pascal и Assembler (listing)


ISP
17.05.2005, 20:50
Нужен Listing.1-я в Turbo. Составить программу выполняющую вычисление по формуле
z=2x3+y2+5 (x - в третьей y- во второй)значения аргументов вводить с клавиатуры
резулаты вывести на экран

2-я. Задание Задание Составить программу на Ассемблере, выполняющую вычисления по формуле(z=)

(1 строка) X2, X>=0;
Z=
(2 строка) X3, X<0;
значение аргумента х(одноразрядное шестнадцатеричное число) вводить с с клавиатуры, результат поместить в регистр DX.
(В пред просмотре виды формулы искажаються)
Буду признателен за помощь

Naked
17.05.2005, 20:55
program formula;
BEGIN
var z, x, y : real;
Write ('Введите x: ');
ReadLn (x);
Write ('Введите y: ');
ReadLn (y);
z := 2*x*x*x + y*y + 5;
WriteLn ('x = ', x, '; y = ', y);
WriteLn ('z = 2*x^3 + y^2 + 5 = ', z);
{Здесь может какую-нибудь задержку нужно поставить}
END.
{если не правильно, извиняюсь, давно на Pascal'е уже не писал...:)}

Trotil
17.05.2005, 22:24
program formula;
{Здесь может какую-нибудь задержку нужно поставить}


Например, ReadLn();

Willow
18.05.2005, 00:53
По поводу Асма.
Х2 и Х3 - это константы?
Откуда знак у одноразрядного шестнадцатиричного числа?

ISP
18.05.2005, 09:33
По поводу Асма.
Х2 и Х3 - это константы?
Откуда знак у одноразрядного шестнадцатиричного числа?

посмотри вложение там в нормальном виде задание

The_naked,Trotil Большое Спасибо!!

Willow
19.05.2005, 01:01
;На Tasm давно не писал, но всё же
.model tiny
.code
.586
org 100h
start:
;выводим пириветсвие
mov dx, offset message1
mov ah,9
int 21h
; считываем число
mov dx, offset buffer
mov ah, 0Ah
int 21h

;переводим число
xor si,si
mov al, byte ptr bufdata[si]
cmp al,'-'
JE NEGATIVE
inc si
mov al, byte ptr bufdata[si]
Call Conver
Jmp Skip
Negative:
Call Conver
Neg AL
Skip:

Xor AH, AH
Cmp AL, 0
JGE X2
Mov CL, AL
Mul CL
Mul CL
Jmp Exit

X2: Mul AL
Exit:
Mov DX, AX
Ret


message1 db 'Введите однозначное десятисное число $'
erro1 db 'Введённая информация не корректна'
buffer db 2
buflen db ?
bufdata dw
;Переводит символ шестнадцатиричный в AL
Conver:
Sub AL,'0'
JB ERROR
Cmp AL, 9
JNA ConverExit
Sub AL, 'A'-'0'
JB ERROR
Cmp AL, 'F'-'A'
JNA ConverExit1

Sub AL, 'a'-'A'
JB ERROR
Cmp AL, 'f'-'a'
JA Error
ConverExit:
Ret
ConverExit1:
Add AL,10
Ret
Error:
mov dx, offset error1
mov ah,9
int 21h
Ret
Ret

ISP
19.05.2005, 10:52
Willow,The_naked,Trotil!!!
Всем спасибо!выручили))