Прокоментировать код

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
i2save
Сообщения: 1
Зарегистрирован: 14 янв 2015, 20:19

14 янв 2015, 20:21

Приветствую! Нуждаюсь в описании асемблерных вставок. Желателен комментарий каждой строчки

Код: Выделить всё

int isrctrl()
{
int r;
asm{
mov ah,2h
int 16h
and ax,4h
mov r,ax
}
return !!r;
}
 
void setvideomode(char mode)
{
asm{
mov ah,0
mov al,mode
int 10h
}
}
 
int shiftstatus(void)
{
int r;
asm{
mov ah,12h
int 16h
mov r,ax
}
return r;
}
 
void setpixel(int x,int y,int c)
{
asm{
mov ah,0ch
mov al,byte ptr c
mov bh,0
mov cx,x
mov dx,y
int 10h
}
}
 
void setcurpos(int x,int y)
{
asm{
mov ah,2
mov bh,0
mov dh,byte ptr y
mov dl,byte ptr x
int 10h
}
}
 
void putchar(char c,int col)
{
asm{
mov ah,0eh
mov al,c
mov bl,byte ptr col
int 10h
}
}
 
void textout(char *txt,int col)
{
for(;*txt;txt++)
  putchar(*txt,col);
}
 
waitkey(void)
{
int r;
asm{
mov ah,10h
int 16h
mov r,ax
}
return r;
}
void showmouse(void)
{
asm{
mov ax,1
int 33h
}
}
void hidemouse(void)
{
asm{
mov ax,2
int 33h
}
}
int ismousepressed()
{
int r;
asm{
mov ax,3
int 33h
and bx,1
mov r,bx
}
return r;
}
 
 
int getmousex()
{
int r;
asm{
mov ax,3
int 33h
mov r,cx
}
return r;
}
 
int getmousey()
{
int r;
asm{
mov ax,3
int 33h
mov r,dx
}
return r;
}
 
int kbhit()
{
int r;
asm{
mov ah,11h
int 16h
jz nokeys
mov r,1
jmp kbex
}
nokeys:
r=0;
kbex:
return r;
}
 
while(k!=0x1000);
setvideomode(0x12);
asm{
mov ax,1007h
mov bl,byte ptr bg
int 10h
mov ax,1000h
mov bl,0
int 10h
}
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

15 янв 2015, 14:29

Названия процедур говорят сами за себя. Код не нуждается в комментариях.
Подробное описание функций прерываний 10h, 16h, 33h с описанием параметров легко гуглятся и есть во многих справочниках по ассемблеру и MS-DOS
It's a long way to the top if you wanna rock'n'roll
jah
Сообщения: 19
Зарегистрирован: 08 янв 2015, 19:20

17 янв 2015, 01:22

я дико извиняюсь, вообще не могу ни тему создать здесь на форуме не сообщение нормально оставить

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




Здравствуйте!

Существует ли нечто наподобие этого:
самый простой ассемблер, желательно одним файлом, чтобы без установок как у masm32
цель использования простая: пишешь некоторую команду ассемблера (например, mov ah,0), а программа выдаёт соответствующую команду в машинном коде, даже возможность сохранения на диск не нужна
?
может быть нечто наподобие hiew, только с ассемблером, а не дизассемблером

И может быть кто-нибудь посоветует ресурсы, на которых неплохо расписано соответствие ассемблерных команд и машинных
нечто типа http://looch-disasm.narod.ru/refe01.htm только для более тупых


Спасибо!
jah
Сообщения: 19
Зарегистрирован: 08 янв 2015, 19:20

17 янв 2015, 01:29

И может быть кто-нибудь посоветует ресурсы, на которых неплохо расписано соответствие ассемблерных команд и машинных
нечто типа http://looch-disasm.narod.ru/refe01.htm только для более тупых


Спасибо!
Ответить