Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

VS и ассемблерные вставки

386
12 мая 2007 года
newcss
297 / / 05.04.2005
Вообщем проблемка такого плана.
В программу инклудится stdio.h
там в некоторых функциях ассемблерные вставки.
К примеру
 
Код:
[SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][SIZE=2] fclose(FILE *hnd){
[/SIZE][SIZE=2][COLOR=#0000ff]__asm[/COLOR][/SIZE][SIZE=2] {
mov ah,3eh
mov bx,[hnd]
[/SIZE][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][SIZE=2] 21h
}
[/SIZE][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][SIZE=2]; }
[/SIZE]


[SIZE=1]stdio.h(29) : error C2443: operand size conflict ругается [COLOR=#0000ff]int[/COLOR][SIZE=2] 21h вот на это...[/SIZE]
[SIZE=2]вообщем как бороться?[/SIZE]
[/SIZE]
395
14 мая 2007 года
RelB
367 / / 09.11.2002
Цитата: newcss
Вообщем проблемка такого плана.
В программу инклудится stdio.h
там в некоторых функциях ассемблерные вставки.
К примеру
 
Код:
[SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][SIZE=2] fclose(FILE *hnd){
[/SIZE][SIZE=2][COLOR=#0000ff]__asm[/COLOR][/SIZE][SIZE=2] {
mov ah,3eh
mov bx,[hnd]
[/SIZE][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][SIZE=2] 21h
}
[/SIZE][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][SIZE=2]; }
[/SIZE]


[SIZE=1]stdio.h(29) : error C2443: operand size conflict ругается [COLOR=#0000ff]int[/COLOR][SIZE=2] 21h вот на это...[/SIZE]
[SIZE=2]вообщем как бороться?[/SIZE]
[/SIZE]

Откуда такой stdio.h? Че за студия такая (самой первой версии)? :)

386
16 мая 2007 года
newcss
297 / / 05.04.2005
Visual Studio .NET
стандартная библиотека из комплекта
2.1K
16 мая 2007 года
vectoroc
234 / / 25.07.2006
Это дос какой-то, net-ом тут и не пахнет.
инклудится явно не оттуда и не то.
в моей VS8 fclose в stdio.h лишь обьявляется как
 
Код:
_CRTIMP __checkReturn_opt int __cdecl fclose(__inout FILE * _File);
9.2K
20 мая 2007 года
llllDeadMan
32 / / 28.11.2005
Ругается она не на int 21h, а на mov bx,[hnd], просто студия в ассемберных вставках всегда показывает ошибку строкой ниже (не знаю почему), а ругается она, потому что действительно не совпадает размерность операндов.
Попробуй так: lea ebx, hnd.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог