Rem dummy file for ntvdm windows 7

autoexec.bat в корне C - опубликовано в Флейм: Нашёл в корне C: батник. Внутри одна строчка: "REM Dummy file for NTVDM" Гугл мне дал одно - это не вирус, вроде как =) Удалять можно? ОС - Семёрка SP1 З.Ы. Форум его прикрепить не разрешает.

#1

Resistor

135

Очень хороший

  • Пол:Мужчина
  • Город:Кировский р-он

Опубликовано 21 Июль 2011 — 20:18

Нашёл в корне C: батник. Внутри одна строчка: «REM Dummy file for NTVDM»
Гугл мне дал одно — это не вирус, вроде как =)
Удалять можно?

ОС — Семёрка SP1

З.Ы. Форум его прикрепить не разрешает.

  • 0

Займитесь политикой и экономикой, они вами уже занялись.

«Я хочу сказать только то, что говорю.»
Кутузов, «Война и мир» Том 4 Часть 4 X, Л.Н.Толстой

#2

Мяут

Мяут

67

Хороший

  • Пол:Мужчина
  • Город:Пушкин

Опубликовано 21 Июль 2011 — 21:45

Если ничего досовского не используешь, то думаю да

  • 0

#3

kamasa

kamasa

0

Обычный

  • Пол:Мужчина

Опубликовано 21 Июль 2011 — 23:00

Стандартный файл. Чего за паника?

  • 0

  • Remove From My Forums
  • Question

  • Hi;
    I could not run the ipconfig command from the console, so I needed to set up a path to c:windowssystem32.
    I entered the line path=c:windowssystem32 into the autoexec.bat file and restarted.
    The system still could not find the ipconfig file.

    I tried creating my own autoexec.bat file (using a different name) and placing it into the startup folder, but that failed to initialize the path.
    Finally, I added the path into the environment variables window, and now it works properly.
    So, I am assuming that autoexec.bat is no longer read by Windows? The file has just one line «REM Dummy file for NTVDM».

    Funny that Windows wouldn’t have automatically included the path to system32 in the environment. Perhaps I did something, because I thought that ipconfig worked from the default command line c:users<my user name>

    At this point I am just curious, since I got it working.

    FW

Answers

  • autoexec.bat was only used for DOS based windows like 95, 98 and ME. Stopped being used with 2000.

    You said you could not run the ipconfig command from the console. DO you mean a Command Prompt or from Start / Run? If Command Prompt then check the path environment variable from a Command Prompt window by typing path and pressing Enter.

    The response should start with this:

    PATH=C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;

    If not, open Control Panel, System, Advanced System Settings, Environment Variables. Select PATH in the System Variables window and click the Edit button. Add the above to the front of what is currently there. Click OK as needed to close all windows.

    Try ipconfig from a Command Prompt again, it should work.


    Rich

    • Proposed as answer by

      Sunday, January 3, 2010 11:48 PM

    • Marked as answer by
      Vivian Xing
      Monday, January 11, 2010 9:37 AM

Приди ко мне брате в Консоль!
— Админ Долгорукий.

Много ярлыков улетело в корзину со времён выхода в свет 2008 Windows. Люди попроще дивились новому синему окошку, которое ребята из Майкрософт зачем-то вставили в свои новые продукты. Люди, которые сидят на блогах и знают программирование начали изучать это окошко.

В итоге к народу начало приходить осознание того, что Майкрософт действительно разработали что-то новое и интересное.
И так, зачем вам это нужно? В основном, программа под названием PowerShell (в дальнейшем PS) предназначена для администраторов и программистов. Она позволяет автоматизировать примерно 99% всех действий в системе. С помощью неё вы можете настраивать удалённые компьютеры, запускать и перезапускать сервисы и производить обслуживание большиства серверных приложений. Как выяснилось, возможности у программы потрясающие.

Конечно же, продвинутые пользователи найдут множество способов использования этого восхитительного синего окошка.

Задача этой статьи проста — показать вам малую долю возможностей PS и дать вам концептуальное понимание предмета. В действительности документации по предмету написано несметное количество, так что я не стремлюсь охватить всё. Я так же ознакомлю вас с набором утилит, которые позволят не вылезать из PS в принципе.

Что представляет собой PS? Это интерпретатор командной строки. Вы вводите необходимые команды, на экране отображается результат их выполнения. Всё просто. Всё было так со времён доса и старого доброго Юникса.

Есть два основных отличия от предшественников, которые качественно выделяют PS среди других интерпретаторов.

  • Очень хорошая интеграция с Microsoft .NET Framework. Это даёт вам возможность вплетать мощные программистские решения в свои команды и скрипты.
  • Все значения, возвращаемые вам в терминал являются объектами, с которыми можно работать как с объектами, а не просто набором строк. Это позволяет вам создавать неимоверно мощные программные скрипты.

Приступая к работе

Если вы используете Windows 7 или 2008 то PS вам уже доступен. Для пользователей других версий Windows — добро пожаловать на сайт Майкрософт.

После установки вы можете запустить консоль и настроить её по своему вкусу, нажав на иконку в заголовке окна. Вы можете выбрать шрифт и изменить сам размер окна.
После этого, предпринимайте робкие шаги по выполнению первых команд. Для начала наберите

dir

и вы получите список папок в текущем каталоге. Приятным моментом для любителей Юникса
будет тот факт, что команда

ls

работает так же хорошо, как и dir. В PS существует система назначения алиасов на различные команды. В действительности, то что вы сейчас сделали — это выполнили командлет (так в PS называются команды, встроенные в сам PS) Get-ChildItem. Вы можете попробовать просто набрать Get-ChildItem и получить тот же результат, что и в двух предыдущих командах. Для того, чтобы вы быстро ознакомились со списком всех алиасов наберите

ls Alias:

И так, что-то произошло. Вы начали кое-что понимать. Сейчас я буду раскладывать всю магию по кусочкам.

Первое. Командлеты в оригинальной нотации PS имеют следующую систему именования — Глагол-Объект. Это позволяет вам лучше понимать, что можно ожидать в результате выполнения того или иного командлета. Например,

Get-Process # Получить список процессов
Remove-Item # Удалить что-то
Get-Help # получить справку по чему-то
Set-Alias # Создать новый алиас
New-Item # Создать новый объект (Объектом может быть всё что угодно, например, файл)

Далее, в PS достаточно много очевидных вещей находится в непривычных для виндузятника местах. В частности, вы можете посмотреть, что за диски есть в вашей системе, набрав команду

Get-PSDrive

И в ответ вы получаете намного более интересный список дисков в вашей системе, нежели тот, что вы видите в «Моём Компьютере»

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
Alias                                  Alias
C                  16.56         63.44 FileSystem    C:
cert                                   Certificate   
D                    .11         53.92 FileSystem    D:
Env                                    Environment
Function                               Function
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Variable                               Variable
WSMan                                  WSMan

На диске Alias вы можете увидеть список всех алиясов в системе. Виртуальный диск Variable: хранит в себе все переменные, которые вы можете использовать в данной сессии. На диске Env — лежат переменные операционной системы. Диски HKCU и HKLM являются обёрткой для работы с соответствующими ветками реестра.
Давайте углубимся. Набирайте

Set-Location HKLM: # Или, если вы из людей подосёвее, набирайте cd HKLM:

Ну и как вам новый и невероятный способ хождения по реестру всея машины? Вы можете сделать ls по ветке реестра или перейти в нужный «каталог», набрав cd SYSTEM.

SKC  VC Name                           Property
---  -- ----                           --------
  2   0 BCD00000000                    {}
  4   0 HARDWARE                       {}
  1   0 SAM                            {}
Get-ChildItem : Requested registry access is not allowed.
At line:1 char:3
+ ls <<<<  -force
    + CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACHINESECURITY:St
   ring) [Get-ChildItem], SecurityException
    + FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.Power
   Shell.Commands.GetChildItemCommand

 35   0 SOFTWARE                       {}
  8   0 SYSTEM                         {}

(Кстати, даже из под администраторского аккаунта есть доступ не ко всем объектам, о чём мой шелл меня уведомляет красными буквами).

Не бойтесь использовать команды New-Item и Remove-Item чтобы создавать и удалять нужные вам ключи в реестре. (И по традиции, я напомню вам, что играться с ключами реестра в администраторском режиме опасно)

Ну, вот вам и небольшой экскурс вглубь. Конечно же, у вас не получится создать ключ реестра так просто. Что-то пойдёт не так, как надо. Ну что же, могу сказать, что PS — это система, которая поощряет обучение в этой системе. Поэтому

Обучение тому, как правильно чему-то научиться в PowerShell

Способность наблюдать и анализировать наблюдения отличает нормального человека от психа. Ребят в Майкрософт психами не назовёшь. Они действительно понаблюдали за пользователями других командных интерпретаторов и выяснили, какая команда чаще всего используется в интерпретаторах. И той командой был великий и могучий man. (Для незнающих — попробуйте сделать — гугл man или наберите в своём баше man man)
В PS есть аналогичная команда, которая звучит как

Get-Help # хотя вы можеше использовать алиас на неё, под названием help

Насколько поразительно отвратительно ребята из Майкрософт делают документацию для пользовательских приложений, настолько хорошо они заботятся о программистах. (Неверующие могут сравнить справку системы Windows XP и 2003)
И так, выбирайте приглянувшийся вам командлет и отправляйте его в help. Если после прочтения общей справки вы ничего не поняли, то попробуйте набрать

get-help New-Item -Examples

Ключ -Examples обычно выдаёт от двух до пяти потрясающих примеров использования выбранной вами команды, с детальным их описанием.
На самом деле, одним только Гет-Хелпом, я в своё время изучил основы PS, перебирая все команды и читая к ним справку.
Если же вы захотели получить справку по какой-то функции, но не знаете, как она называется, а просто предполагаете о её существовании, то просто наберите

get-help files

В ответ на эту команду вы получите список топиков, которые содержат ключевое слово:

PS C:> get-help Files

Name                              Category  Synopsis
----                              --------  --------
FileSystem                        Provider  Provides access to files and dire...
about_profiles                    HelpFile  Describes how to create and use a...

В нашем случая, для того, чтобы научиться работать с реестром, вы можете просто набрать

get-help Registry

В ответ вы получите длиннющее полотно, которое со всеми подробностями расскажет вам о том, как вы можете работать с реестром в PS.
К сожалению, читабельность полотна обратно пропорциональна его длине. Так что, научившись учиться, давайте обучимся тому, как сделать работу в шелле немного проще.

Маленькие, но очень полезные фишки, которые должны быть в жизни

Товарищ, смирись, ты — в командной строке. Тут безгуёво принципе. Но, если ты познаешь некоторые уловки, тебе здесь станет удобно.

И так, для тех, кто никогда не был в командной строке

  1. Нажатие кнопкок вверх и вниз позволяет вам прокручивать историю команд, и выбирать ранее набранные команды.
  2. Нажатие кнопки вправо, в конце строки, будет посимвольно перенабирать предыдущую команду.

Для тех, кто уже бывал в командных строках

  1. Ctrl+Home — удаляет всё, начиная с текущей позиции курсора до начала строки
  2. Ctrl+End — удаляет с курсора и до конца строки
  3. F7 — показывает окно со списком набранных команд, и позволяет выбрать одну из них.
  4. Для того, чтобы скопировать что-то в буфер, выделите это мышью и нажмите Enter.
  5. Для того, чтобы вставить строку из буфера — просто нажмите правую кнопку мыши.

Это — самые базовые, и необходимые действия, которые вам придётся выучить наизусть. Другое дело, что они помогут вам шустрее работать с шеллом.

Углубляемся в изучение окружения

Для того чтобы понять нижеследующие строки, нам надо будет разобраться с понятием конвейера.
Когда вы запускаете какой-либо командлет, то возвращаемые им значения преобразуются в текст и выводятся на экран. Но, это не всегда полезно. Например, если вы хотите передать возвращаемое значение одного командлета на вход другого. Для этого вам полезно будет использовать |, в народе именуемый конвейером.
Например, вы хотите отобразить на экране текст, который содержится во всех файлах формата bat в папке. Для того, чтобы выбрать файлы, выполняйте

PS C:> ls -filter "*.bat" | Get-Content
REM Dummy file for NTVDM

Команда ls -filter «*.bat» выбирает все файлы с нужным расширением, а команда Get-Content выводит их на экран (на самом деле, исходя из названия, команда просто получает содержимое объекта, а на экран он выводится по факту того, что дальше некуда)
Конвейер может сделать очень много полезного для вас. Например, решить «портянку помощи».

Get-Help Registry | Set-Content reg.txt

И весь файл помощи по реестру сохранён в текстовом файле, который вы теперь можете открыть.

Если вы действительно хотите порадоваться жизни, и понять, что PS способен на многое, то вам придётся применить свой IQ на все 100% и вообразить что-то нереальное.

ps | ls

Выглядит невероятно, а результат даёт потрясающий! Если вы хотите узнать, из какого файла появился процесс, просто пустите его конвейером на get-childitem!
В частности, я сейчас набираю текст в вордпаде:

PS C:> ps wordpad | ls

    Directory: C:Program FilesWindows NTAccessories

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         6/28/2010   9:57 PM    4247040 wordpad.exe

Вот это меня поразило до глубины души.

Теперь можно переходить к изучению окружения

Как я уже говорил, всё что вы видите на экране не является строками, а является объектами. Например, результат выполнения команды ps возвращает нам список процессов, запущенных в системе.
Но как узнать, что же у нас в руках?
Для этого мы воспользуемся командлетом Get-Member, который откроет нам методы любого класса. Давайте узнаем, что содержится в том же самом процессе, который выдаёт нам команда ps.

ps wordpad | Get-Member

Набирайте, и смотрите на список членов класса, которые вы можете увидеть в классе System.Diagnostics.Process. Тоесть, фактически, командлет ps вернул нам массив объектов типа Process и мы можем попрограммировать их!
Давайте поглумимся над блокнотом.

PS C:> notepad                                                        
PS C:> ps notepad                                                                                                                            Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName  -------  ------    -----      ----- -----   ------     -- -----------       70       4     1148       5376    56     0.30   3900 notepad                                                                                                                                                    PS C:> ps notepad | get-member -type method


   TypeName: System.Diagnostics.Process

Name                      MemberType Definition
----                      ---------- ----------
BeginErrorReadLine        Method     System.Void BeginErrorReadLine()
BeginOutputReadLine       Method     System.Void BeginOutputReadLine()
CancelErrorRead           Method     System.Void CancelErrorRead()
CancelOutputRead          Method     System.Void CancelOutputRead()
Close                     Method     System.Void Close()
CloseMainWindow           Method     bool CloseMainWindow()
CreateObjRef              Method     System.Runtime.Remoting.ObjRef CreateObj...
Dispose                   Method     System.Void Dispose()
Equals                    Method     bool Equals(System.Object obj)
GetHashCode               Method     int GetHashCode()
GetLifetimeService        Method     System.Object GetLifetimeService()
GetType                   Method     type GetType()
InitializeLifetimeService Method     System.Object InitializeLifetimeService()
Kill                      Method     System.Void Kill()
Refresh                   Method     System.Void Refresh()
Start                     Method     bool Start()
ToString                  Method     string ToString()
WaitForExit               Method     bool WaitForExit(int milliseconds), Syst...
WaitForInputIdle          Method     bool WaitForInputIdle(int milliseconds),...

Вот это неплохое количество методов, которые мы можем запустить, используя шелл. И так, как же это сделать? Просто.

(ps notepad).WaitForExit()

Если вы возьмёте результат выполнения командлета в скобки, то вы сможете обратиться к нему, как к объекту в вашей программе, прямо из командной строки.
После запуска этого метода шелл завис и ждёт у моря погоды. Нажмите пару раз Enter. Ничего не происходит. Что же, закройте открытый блокнот. Вуаля, вы снова в шелле.
Я думаю, теперь вы должны погулять свою фантазию. Попробуйте, пустите через конвейер в get-member результаты выполнения ls или других командлетов, каких только можете найти.
Если вы увидели, что в свойстве какого-то объекта лежит ещё один объект, не стесняйтесь пускать его на Get-Member

(ps notepad).StartTime | Get-Member

И так далее до бесконечности.

Задача для пытливых умов. Пролетела новость, что рефлектор станет платным. Как сделать рефлектор на чистом PS? Кстати, это не такая уж и трудная задача.

Ну, вот, мы немного разобрались с тем, как узнать, что нас окружает. Теперь, мы готовы к тому, чтобы понять ещё парочку принципов, существующих в шелле.

Переменные и объекты

И так, пару слов по поводу переменных. В PS они бывают нетипизированными:

$processList = ps

И типизированными

PS C:> [DateTime]$x = "febbrrr"
Cannot convert value "febbrrr" to type "System.DateTime". Error: "The string was
 not recognized as a valid DateTime. There is a unknown word starting at index 0."
At line:1 char:13
+ [DateTime]$x <<<<  = "febbrrr"
    + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
    + FullyQualifiedErrorId : RuntimeException
PS C:> [DateTime]$x = "02/14/11"
PS C:> $x
Monday, February 14, 2011 12:00:00 AM

И так, у нас появились переменные, и теперь мы можем присваивать им значения. В общем, всё, что вы пускали на конвейер, можно пустить и в переменную. Но, тут PS предоставляет нам одну очень интересную фитчу, которая делает его незаменимым инструментом в руках .NET разработчика.
Помните, я сказал, что в PS всё, что возвращается — это объект? Ну так вот, объект это не простой, а дотнетовый. Любой программист уже обратил внимание на тот факт, что в списке процессов мы работали с объектом из окружения CLR. Что же, мы можем запросто создать такой объект.
Давайте, попробуйте

$x = new-object System.Object

Что-же, переменную мы создали, а толку от неё — как с икспи сервака. Никакого. Давайте пофантазируем и подумаем, что мы действительно можем сделать?

C:> $client = New-Object System.Net.WebClient
C:> $client.DownloadString("http://google.com")

А вот это уже другое дело. Только что мы из подручных средств собрали себе wget на коленке. Как вам такой поворот событий?
Что же, в этот момент можно идти в MSDN и подряд перебирать все классы, смотреть, что в них есть интересного. Всё это позволяет создавать очень гибкие скрипты.

Кстати, о скриптах

PS позволяет выполнять скрипты. Ура! Делает он это с волшебного пендаля. Неура. По умолчанию в PS запрещён запуск скриптов, которые не были подписаны цифровой подписью. Для запуска скрипта вы должны его либо подписать (для этого используйте help about_signing) либо, просто понизить уровень безопасности, и выполнить

set-executionpolicy remotesigned

обычно я делаю второе. Ибо первый вариант требует скачивания многотонных SDK и долгого колдовства. Хотя, напомню о безопасности, и скажу, что второй вариант не канает для супер-сервера-всея-руси.
После выполнения этих действий, вы будете готовы писать свой первый скрипт. Для начала, рекомендую создать для него файл:

New-Item -type file $PROFILE

Переменная $PROFILE содержит в себе адрес файла с вашим профилем в PS. Этот файл будет запускаться в тот момент, когда вы стартуете PS. Плюс заключается в том, что вы можете нашпиговать свой профиль разными мелкими и полезными скриптами, которые помогут вам автоматизировать производство.
Теперь вы можете начать редактирование своего профиля:

vim $PROFILE

(О, кстати, я вам не сказал, но в PS, на мой взгляд, лучше всего смотрится текстовый редактор vim. Возможно кто-то назовёт меня настоящим извращенцем, но на самом деле, я уже не раз пытался использовать что-то другое, но всегда возвращался к виму. Попробуйте и вы. Его не просто изучить с нуля, но если вы поймёте основы, то сможете очень быстро и удобно редактировать тексты.)
Ладно, теперь повторим эту команду без того, чтобы умничать:

notepad $PROFILE

Ну, вот, например, то, что лежит у меня в профиле

$webClient =  New-Object System.Net.WebClient
$cred = New-Object System.Net.NetworkCredential("login", "Pass")
$webClient.Proxy = New-Object System.Net.WebProxy("www.proxy.adrress", $true, $null, $cred)

Так как мы используем прокси сервер, а вэб клиент является моим любимым инструментом для работы, то я уже заготовил для себя переменную с этим клиентом, чтобы иметь возможность безболезненно подключаться к интернету и не отягощать себя вводом пароля.
Что ещё можно запихнуть в профиль?
Всё что угодно. Настройки цвета окна, ваши любимые функции и алиасы. Алиасы на ваши излюбленные программы и скрипты автоматизации…

На самом деле, я уже написал достаточно много. Вы увидели для себя кое-что новое. Я прекрасно знаю, что уровень этой статьи — для начинающих, но и продвинутые админы найдут для себя несколько интересных моментов. Моей задачей было предоставить вам возможность получить общее представление о том, что вы можете сделать.
Что же, вот, напоследок, вам задачи, над которыми можно поломать голову и решить интересные проблемы:
Написать скрипт, который сортирует изображения по папкам, исходя из их размера (для получения размера файла можно использовать дотнет объекты или ком объекты, предоставляемые эксплорером)
Для выполнения этого, вам уж точно понадобиться хорошо изучить Where-Object или Foreach-Object.

Написать простой NMAP
Что будет, если запустить команду Пинг в цикле? А теперь, возьмите выход от этой команды и пропарсите его как строку. Вам однозначно придётся прочитать мануал по -le -ge и том, как работать со строками.

Написать парсер для башорга.
Чтобы, после логина в систему, вам на выбор выдавалась цитата из лучших за последние пять лет. Тут можно использовать регэкспы, с которыми PS очень хорошо дружит.

Поиграться с переменной $host и сделать из синего экрана Матрицу!

Что ещё можно делать? Матёрые COM программисты найдут для себя отличный способ повеселиться, когда обнаружат, что new-object имеет ключ -comObject. Фактически, это открывает вам ворота к полному управлению практически любой функцией локального и удалённого компьютера.

Ещё хочу заметить, что последние версии программного обеспечения от Microsoft поддерживают работу в PowerShell. Например, есть SQL PowerShell, который поставляется с 2008 сиквелом и позволяет сделать ls по записям в любой таблице. Это даёт ещё больший простор для фантазий.

Так же, хочу заметить, что комьюнити по разработке на PS очень сильно растёт и ширится. В частности, вы можете найти скрипты, готовые для чего угодно — например, вы можете нагуглить себе способ управления ITunes через PowerShell или способ использования Google Desktop Search в PS.

Что же, мой неинтересующийся друг, надеюсь, я дал тебе что-то интересное, и ты теперь возьмёшься за покорение интерпретатора, который действительно поможет тебе упростить твою нелёгкую программерскую жизнь и даст тебе возможность автоматизировать больше и быстрее. Очень приятно, что ты прочитал мою статью. Спасибо большое, я могу продолжать конкретно описывать определённые области, если вдруг тебе станет очень интересно.

Typoii

15 / 22 / 6

Регистрация: 13.10.2011

Сообщений: 167

1

21.02.2012, 05:47. Показов 2123. Ответов 16

Метки нет (Все метки)


Вот код на масм16:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.8086
.model small
.stack 100
.data
video_page db 2
.code
start:
;Режим видеоадаптера 0
xor ah,ah
xor al,al
int 10h
;Загрузка таблицы знакогенератора.Загрузка стандартного набора символов из ПЗУ биос(8*14)
mov ah,11h
mov al,01h
mov bl,2
int 11h
;Изменение формы курсора
mov ah,1
mov ch,0
mov cl,5
int 10h
;Выбираем страницу видеопамяти
mov ah,5
mov al,video_page
int 10h
.exit
end start

а вот батник(в книге написано что в строке c:masm32binlink 111111.obj , 111111.exe нужен не Link16 а не link,но link16 такого в папках нет)
c:masm32binml /c 111111.asm
c:masm32binlink 111111.obj , 111111.exe,,,,
pause

Может в коде где-то ошибка или батник неправильный,даже не знаю.Вот прикрепил скрин с ошибками:

Миниатюры

Не компилится asm файл
 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Mikl___

Ушел с форума

Автор FAQ

15554 / 7372 / 979

Регистрация: 11.11.2010

Сообщений: 13,312

21.02.2012, 06:12

2

Typoii, вот бат-файл который создает ехе для DOS

Bash
1
2
%masm_path%binml /c %filename%.asm
%masm_path%binlink %filename%.obj,,,,,

видно, что линковка у тебя запускается неправильно
и первых двух строк в exe не хватает mov ax,@data/mov ds,ax



0



Typoii

15 / 22 / 6

Регистрация: 13.10.2011

Сообщений: 167

21.02.2012, 07:10

 [ТС]

3

Удалил пункт с data,Ошибки по тексту проги исправил ассемблирование удалось,но на линковании выдаёт ошибку unresolved external symbol _WinMainCRTSTARTUP .Это типа не может распознать точку входа или ещё что,вобщем как эту ошибку исправить можно.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.8086
.model small
.stack 100
.code
start:
;Режим видеоадаптера 0
xor ah,ah
xor al,al
int 10h
;Загрузка таблицы знакогенератора
mov ah,11h
mov al,01h
mov bl,2
int 11h
;Изменение формы курсора
mov ah,1
mov ch,0
mov cl,5
int 10h
;Делаем страницу видеопамяти активной
mov ah,5
mov al,2
int 10h
.exit
end



0



Ушел с форума

Автор FAQ

15554 / 7372 / 979

Регистрация: 11.11.2010

Сообщений: 13,312

21.02.2012, 07:29

4

Typoii, возможно проблема с .exit поставь вместо нее mov ah,4Ch/int 21h и 15 строке исправь на int 10h



0



2013 / 1285 / 61

Регистрация: 05.06.2010

Сообщений: 2,213

21.02.2012, 08:20

5

Typoii, используй 16-разрядный линкер
Mikl___, мой тасм .exit переводит именно в mov ah,4Ch/int 21h



0



Mikl___

Ушел с форума

Автор FAQ

15554 / 7372 / 979

Регистрация: 11.11.2010

Сообщений: 13,312

21.02.2012, 10:44

6

используй 16-разрядный линкер

vital792
1) link16.exe, который находится в папке masm32bin ver 10 на самом деле Microsoft (R) Segmented Executable Linker Version 5.60.339 Dec 5 1994 примерно тот же, что и на картинке, которую прикрепил Typoii
2) совет избавится от .exit вызван желанием помочь избавиться от ошибки unresolved external symbol _WinMainCRTSTARTUP хотя, наверное, достаточно написать end start в конце программы

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.286
.model small
.code
start:  xor ax,ax
    int 10h
    mov ax,1101h;Загрузка таблицы знакогенератора.Загрузка стандартного 
    mov bl,2;набора символов из ПЗУ биос(8*14)
    int 10h
    mov ah,1;Изменение формы курсора
    mov cx,5
    int 10h
    mov ax,502h;Выбираем страницу видеопамяти
    int 10h
    mov ah,4Ch
    int 21h
end start



1



2013 / 1285 / 61

Регистрация: 05.06.2010

Сообщений: 2,213

21.02.2012, 13:05

7

Mikl___, я никогда не пользовал этот link16, честно говоря, даже не видел что он там есть, так что про него ниче сказать не могу. Я имел ввиду обычный 16 разрядный линкер из пакета tasm или masm, по идее он ниче не должен знать про _WinMainCRTSTARTUP



0



15 / 22 / 6

Регистрация: 13.10.2011

Сообщений: 167

21.02.2012, 13:40

 [ТС]

8

Mikl____,Значит получается что у меня бажный линкер Link.exe, link-a16.exe у меня вообще в папках нет(у мя masm32 верси9),Тоесть нужен линкер десятой версии масма,или наоборот со старых версий,чёт я запутался.
vital792,link16 и 16 разрядный линкер это разве не одно и тоже?



0



2013 / 1285 / 61

Регистрация: 05.06.2010

Сообщений: 2,213

21.02.2012, 14:24

9

Цитата
Сообщение от Typoii
Посмотреть сообщение

link16 и 16 разрядный линкер это разве не одно и тоже?

я писал, что не знаю что такое link16, судя по названию, он тоже 16 разрядный, возможно для 16 разрядных версий винды (типа 3.11). А тебе нужен транслятор и компоновщик(линковщик) для дос.



0



15 / 22 / 6

Регистрация: 13.10.2011

Сообщений: 167

22.02.2012, 02:23

 [ТС]

10

Всё получилось,в фаре набрал Ml.exe 555.asm /autoexec.bat и получил экзэшник и объектный файл.Всем спс за помощь .



0



Ушел с форума

Автор FAQ

15554 / 7372 / 979

Регистрация: 11.11.2010

Сообщений: 13,312

22.02.2012, 05:18

11

Цитата
Сообщение от Typoii
Посмотреть сообщение

Всё получилось,в фаре набрал Ml.exe 555.asm /autoexec.bat и получил экзэшник и объектный файл

Typoii, а для чего нужен ключ /autoexec.bat ? Первый раз такое вижу



0



15 / 22 / 6

Регистрация: 13.10.2011

Сообщений: 167

22.02.2012, 06:37

 [ТС]

12

Когда вбивал Ml.exe 555.asm нужен был ключ AT ,с ним не работало,ну вобщем когда ключ этот прописывал,постоянно появлялся autoexec.bat,ну взял и ввёл его,скомпилило экэшник и объект,походу одно и тоже что и at



0



Ушел с форума

Автор FAQ

15554 / 7372 / 979

Регистрация: 11.11.2010

Сообщений: 13,312

22.02.2012, 07:04

13

Typoii, ключ /AT нужен для «Enable tiny model (.COM file)» «Создать файл в формате .com (модель tiny)» зачем его использовать при создании ЕХЕ не понимаю, и тем более не понимаю зачем используется autoexec.bat причем слэш («/») повернут в другую сторону?



0



15 / 22 / 6

Регистрация: 13.10.2011

Сообщений: 167

22.02.2012, 08:21

 [ТС]

14

Вот что содержит этот батник REM Dummy file for NTVDM

Добавлено через 1 минуту
расположен по пути C:Windowswinsxsx86_microsoft-windows-ntvdm-system32_31bf3856ad364e35_6.0.6001.18000_none_fe0d 791a728dd79cautoexec.bat



0



Ушел с форума

Автор FAQ

15554 / 7372 / 979

Регистрация: 11.11.2010

Сообщений: 13,312

22.02.2012, 13:29

15

Typoii, если загружается ось DOS, то файлы autoexec.bat и config.sys, находящиеся в корневом каталоге жесткого диска (системной дискеты), загружаются при включении или перезагрузке компьютера. С помощью этих файлов загружаются драйверы внешних устройств: мыши, клавиатуры, расширенной памяти и т.п., без которых нормальная работа компьютера и важнейших программ невозможна. Каким образом и для чего ты пытаешься использовать файл autoexec.bat при создании exe из asm-файлов при помощи ml.exe для меня загадка.



0



15 / 22 / 6

Регистрация: 13.10.2011

Сообщений: 167

23.02.2012, 12:07

 [ТС]

16

Mikl___, Кстати всё равно как ставить слэш при autoexec.bat ,работает всё чётко,этот ключ создаёт com файл если в asm файле есть org 100h,если нет экзэшник.Кучу текство с форума при помощи этого ключа пропесочил,всё работает и правильно.



0



21 / 21 / 2

Регистрация: 09.11.2010

Сообщений: 102

24.02.2012, 00:12

17

Простите что влажу в чужую тему, но суть та же…

CODESG SEGMENT PARA ‘CODE’;
ASSUME CS:CODESG, DS:CODESG, SS:CODESG, ES:CODESG

BEGIN:

sub ax,ax
mov al,75h
add ax,1331h
mov bx,ax
add ax,bx
sub ax,bx

CODESG ENDS
END BEGIN

Без метки не компилился (кто нибудь объясните пожалуйста почему), с меткой компилиться, но в итоге ошибки при запуске файла

что в нем, блин, не так… пример кода взят из какой-то книги, единственное что заменил в нем — это этих 6 команд



0



Откройте «Программы и компоненты», а затем нажмите «Включение или отключение компонентов Windows» слева. 5. Разверните «Устаревшие компоненты», установите флажок «NTVDM» и нажмите «ОК».

NTVDM предоставляется как функция по запросу, которую сначала необходимо установить с помощью команды DISM. Запустите Windows PowerShell ISE от имени администратора и используйте следующую команду: Чтобы включить NTVDM: DISM / онлайн / включить функцию / all / featurename: NTVDM. Чтобы отключить NTVDM: DISM / online / disable-feature / featurename: NTVDM.

Где НТВДМ?

Ntvdm.exe — это законный файл. Он также известен как виртуальная машина Windows NT Dos, которая принадлежит операционным системам Microsoft Windows. Он используется для обеспечения среды для 16-битного процесса, выполняемого на 32-битной платформе. Обычно хранится в C: WindowsSystem32.

Как запустить 16-битную программу в Windows 7?

Во всех версиях Windows 7 вы, конечно, можете бесплатно установить Virtual PC или какой-либо другой продукт виртуализации (например, Oracle VirtualBox, VMWare), установить что собой представляет желаемую 16-битную или 32-битную операционную систему и запускайте приложения на виртуальной машине. Интеграция будет не такой хорошей, как в режиме Windows XP.

Как переустановить NTVDM exe?

Как переустановить NTVDM.exe

  1. Вставьте установочный компакт-диск Windows в соответствующий дисковод.
  2. Откройте функцию поиска, нажав «Пуск»> «Поиск».
  3. Укажите каталог для поиска, выбрав дисковод компакт-дисков, который по умолчанию — «D:». …
  4. Скопируйте три файла на свой жесткий диск. …
  5. Наберите «expand ntvdm.

Как установить ОТВДМ?

Установите программу щелкнув правой кнопкой мыши по установке. inf файл в скачанный архив и выбрав «Установить». В качестве альтернативы вы можете загрузить установщик Inno Setup, который я создал для последней версии otvdm и который я собираюсь регулярно обновлять по мере появления новых выпусков.

Как включить NTVDM в Windows 10?

Просто откройте панель управления, перейдите в раздел «Программы» и нажмите «Включить компоненты Windows». или выкл. Вы можете найти NTVDM в списке в разделе «Устаревшие компоненты», как показано на изображении ниже.

Что такое WineVDM?

WineVDM — это уровень совместимости с открытым исходным кодом который имитирует вызовы ядра / пользователя / GDI с другими аспектами, такими как передача окон в ОС хоста. Это форк Wine, использующий ядро ​​процессора MAME 80386 и MS-DOS Player.

Что такое процессор NTVDM?

NTVDM позволяет выполнять 16-битную программу DOS в Windows. Это в основном эмулятор DOS. Т.

Как мне избавиться от NTVDM?

Удалите Ntvdm.exe с вашего ПК.

Windows 7: Нажмите Пуск — Панель управления — Удалить программу.. Вы увидите список программ и программного обеспечения, установленного на вашем компьютере. Щелкните правой кнопкой мыши «Ntvdm.exe» и нажмите «Удалить».

Может ли Windows 7 запускать 16-битные приложения?

Может ли Windows 7 запускать 16-битные программы? Да, ты можешь, запустите Windows 7 и Windows XP как двойную загрузку. … 16-битные программы изначально не работают в 64-битной Windows 7. Как заявляет ITKnowledge24, если у вас установлена ​​Windows 7 Professional или Ultimate, вы можете работать в режиме XP.

Как запустить dBASE в Windows 7?

dBASE Plus можно успешно запустить на Vista / 7 с помощью установка файла манифеста приложения который содержит соответствующий параметр requiredExecutionLevel. У администратора BDE также должен быть установлен файл манифеста для его работы в Vista / 7.

Как запустить 16-битную программу?

Настроить 16бит приложение Поддержка в Windows 10

Для этого нажмите клавиши Windows + R, затем введите: optionalfeatures.exe и нажмите Enter. Разверните «Устаревшие компоненты», затем отметьте NTVDM и нажмите «ОК». Запустится мастер добавления функций для NTVDM. Щелкните Установить этот компонент, чтобы завершить установку.

Как исправить, что Ntvdm exe перестал работать?

EXE перестал работать », и он появляется снова и снова. Чтобы устранить эту проблему, запустите проверку системных файлов (SFC) на вашем компьютере. Кроме того, убедитесь, что на вашем компьютере установлены все последние обновления. Посетите раздел поддержки на веб-сайте производителя вашего компьютера и проверьте наличие всех обновлений.

Как исправить Ntvdm exe в Windows 10?

Как исправить NTVDM обнаружил системную ошибку в Windows 7 и Windows 10. *

  1. Включите компонент NTVDM. Одновременно нажмите Win. + R ключи, чтобы открыть окно команды запуска. …
  2. Включите устаревшую консоль. Одновременно нажмите Win. …
  3. Шаг 3 (необязательно *). Включите доступ к 16-битным приложениям из реестра или групповой политики.

Как загрузить Ntvdm на 10-разрядную версию Windows 64?

Выполните следующие действия, чтобы загрузить и правильно заменить файл:

  1. Найдите версию операционной системы Windows в нижеприведенном списке «Загрузить файлы ntvdm.exe».
  2. Нажмите соответствующую кнопку «Загрузить сейчас» и загрузите свою версию файла Windows.
  3. Скопируйте файл в каталог, соответствующий вашей версии Windows:

Понравилась статья? Поделить с друзьями:
  • Remotefx windows server 2016 как включить
  • Remotefx windows 10 удаленный рабочий стол
  • Remotefx usb device redirection windows 10
  • Remotefork скачать для пк на windows 10 на русском
  • Remoteapp windows server 2019 создать rdp файл