imho.ws |
![]() |
![]() |
![]() |
# 1 |
Member
Регистрация: 15.07.2002
Сообщения: 246
![]() |
Две задачи в Turbo Pascal и Assembler (listing)
Нужен Listing.1-я в Turbo. Составить программу выполняющую вычисление по формуле
z=2x3+y2+5 (x - в третьей y- во второй)значения аргументов вводить с клавиатуры резулаты вывести на экран 2-я. Задание Задание Составить программу на Ассемблере, выполняющую вычисления по формуле(z=) (1 строка) X2, X>=0; Z= (2 строка) X3, X<0; значение аргумента х(одноразрядное шестнадцатеричное число) вводить с с клавиатуры, результат поместить в регистр DX. (В пред просмотре виды формулы искажаються) Буду признателен за помощь
__________________
I S P Последний раз редактировалось ISP; 29.05.2007 в 19:52. |
![]() |
![]() |
# 2 |
::VIP::
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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'е уже не писал... ![]()
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным. Последний раз редактировалось The_naked; 17.05.2005 в 20:58. |
![]() |
![]() |
# 6 |
Junior Member
Регистрация: 23.12.2003
Адрес: Киев
Сообщения: 118
![]() ![]() ![]() ![]() |
;На 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 |
![]() |