Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2013, 17:49   #1
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию Паскаль + асм

Нужно запустить норм программу

Код:
Program mov16;
var
x,a:    integer;
b,z:    byte;

Procedure mov_16(var x:integer;var z:Byte);
begin
writeln('Вычислить: x=a a,x: integer;');
write('Введите значение a ');
readln(a);
x:=a;
writeln('Вычислить z=b; b,z:byte;');
write('Введите значение b ');
readln(b);
z:=b;
writeln('ПАСКАЛЬ: x=',x,' z= ',z );
z:=0;
x:=0;
mov_16(x,z);
writeln('АССЕМБЛЕР: x=',x,' ;z= ',z);
readln
end.

Код:
title	lab-2
.model	large
.data
extrn	x:Dword
a	dd 12345678h
.code
public	movL
movL	proc far
mov	ax,word ptr a
mov	bx,word ptr a+2
mov	word ptr x,ax
mov	word ptr x+2,bx
ret
movL	endp
end

В папке с паскалевским файлом лежит файл mov_16.obj
Пользуюсь Pascal ABC
Выдает
1.pas(22) : Ожидалось ';' на строке end
zla9_kolu4ka вне форума Ответить с цитированием
Старый 13.12.2013, 18:05   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Все правильно. И должна быть ; процедура еще не закончилась, а вы . Ставите.
И судя по асмовскому исходнику, код для msdos
Вам нужно с турбо паскалем работать

Последний раз редактировалось ZX Spectrum-128; 13.12.2013 в 18:10.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 13.12.2013, 18:22   #3
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию

код асма не тот, вот
Код:
.model  large
.data
extrn   a:word,x:word
extrn   b:byte,z:byte
.code
public  mov_16
mov_16  proc far
mov ax,a
mov bl,b
mov x,ax
mov z,bl
ret
mov_16  endp
end
Переделайте под Pascal ABC, а дальше я буду сама делать, мне надо просто первую прогу запустить!!
У меня просто x64, не пойдет turbo pascal, да и противный он, неудобный
zla9_kolu4ka вне форума Ответить с цитированием
Старый 13.12.2013, 18:37   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Зачем вам вообще эта ассемблерная процедура нужна? Она же ничего не делает.

upd: Вы задание свое озвучьте.

Последний раз редактировалось ZX Spectrum-128; 13.12.2013 в 18:44.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 13.12.2013, 18:44   #5
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию

Код:
Зачем вам вообще эта ассемблерная процедура нужна? Она же ничего не делает.
Книга автор Голубь НГ
Искусство программирования на Ассемблере.
Там изучается ассемблер в связке с паскалем и C++
Поэтому нужно запустить и изучать дальше примеры
zla9_kolu4ka вне форума Ответить с цитированием
Старый 13.12.2013, 18:50   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Глава 6-я? Это под dos. Нужно компилировать tasm'ом ассемблерную часть и подключать ее к турбо паскалю.
PascalABC не будет работать в этом случае.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 13.12.2013, 18:53   #7
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию

Код:
Глава 6-я
5-я,
Цитата:
Нужно компилировать tasm'ом ассемблерную часть и подключать ее к турбо паскалю.
я и так компилирую тасмом, а что никак нельзя к Pascal ABC подключить?

Последний раз редактировалось zla9_kolu4ka; 13.12.2013 в 18:57.
zla9_kolu4ka вне форума Ответить с цитированием
Старый 13.12.2013, 19:26   #8
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Цитата:
Сообщение от zla9_kolu4ka Посмотреть сообщение
Код:
Глава 6-я
5-я,

я и так компилирую тасмом, а что никак нельзя к Pascal ABC подключить?
не-а, тасм генерирует 16-битный код и под msdos
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 13.12.2013, 20:20   #9
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию

Код:
не-а, тасм генерирует 16-битный код и под msdos
TASM на Windows XP же идет 32х битную, так что это не аргумент
Что можно установить, чтобы не устанавливать ДОС и чтобы можно было запустить асм и паскаль?
У меня 7ка x64 и виртуальная машина есть XP x86

Последний раз редактировалось zla9_kolu4ka; 13.12.2013 в 20:23.
zla9_kolu4ka вне форума Ответить с цитированием
Старый 13.12.2013, 20:24   #10
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Который тасм? Из комплекта турбо паскаля? Tasmx вроде
Он может генерировать 32-й код, но для protected mode dos, не windows
А впрочем, не могу быть 100% уверен.
Это было так давно, когда я программировал на асм


Ого, 20 лет прошло
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
меню(асм) A.S.W Фриланс 1 21.08.2011 20:49
асм (с%о) Ислам Помощь студентам 7 21.05.2011 09:11
Перевод из асм в с++ Flay Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 18.09.2010 21:05
Умножение массивов Паскаль+АСМ xVxSeRGxVx Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 24 21.02.2010 14:11