diff --git a/01-asm-basics/Labv1.cpp b/01-asm-basics/Labv1.cpp index de3204b..7e59ea6 100644 --- a/01-asm-basics/Labv1.cpp +++ b/01-asm-basics/Labv1.cpp @@ -1,33 +1,36 @@ -#include -#include -#include #include +#include +#include #define PortCan0 0x40 void beep(unsigned iTone, unsigned iDlit); -int main(void) { +void delay(unsigned int ms) +{ + usleep(ms * 1000); +} +int main(void) { long int lCnt = 0; int iA = 0x1234; char *pT = (char *)0x46C; - printf("\n\n"); + printf("\nПечатаем 10 раз значение байта с известным адресом\n"); for (int i = 0; i < 10; i++) printf(" \n %d ", *pT); - printf("\n\n"); - getch(); + printf("\n Для продолжения нажмите любую клавишу \n"); + system("pause"); // Ждем нажатия клавиши - printf("\n ⠥ ᮤন ᮬ 40 㭪樨 \n"); - printf("\n 室 横 - \n"); + printf("\n Читаем содержимое порта с адресом 40 с помощью функции Си \n"); + printf("\n Для выхода из цикла - нажмите любую клавишу \n"); while (bioskey(1) == 0) { - printf(" \n 40 = %d ", inp(PortCan0)); + printf("\n Порт40 = %d", inp(PortCan0)); delay(500); } - getch(); - printf("\n ⠥ ᮤন ᮬ 40 ᥬ஬ \n"); + system("pause"); + printf("\n Читаем содержимое порта с адресом 40 ассемблером \n"); while (bioskey(1) == 0) { asm { @@ -35,27 +38,32 @@ int main(void) { in al,0x40 } unsigned char Tmm = _AL; - asm pop ax delay(500); - printf(" \n 40 = %d ", Tmm); + asm pop ax + delay(500); + printf("\n Порт40 = %d", Tmm); } - getch(); - printf("\n த - \n "); - getch(); + system("pause"); + printf("\n Для продолжения - нажмите любую клавишу \n"); + system("pause"); - long far *pTime = (long *)0x46C; + long *pTime = (long *)0x46C; while (bioskey(1) == 0) { printf("\n %ld", *pTime); delay(1000); } - getch(); + system("pause"); int Time; while (bioskey(1) == 0) { - asm push ds asm push si - - asm mov ax, - 40h asm mov ds, ax asm mov si, 0x6C asm mov ax, [ds : si] asm mov Time, - ax asm pop si asm pop ds + asm push ds + asm push si + asm mov ax, 40h + asm mov ds, ax + asm mov si, 0x6C + asm mov ax, [ds : si] + asm mov Time, ax + asm pop si + asm pop ds printf("\n %d", Time); delay(300); @@ -64,7 +72,8 @@ int main(void) { beep(400, 200); for (lCnt = 0; lCnt < 1000000; lCnt++) { a1: - asm { mov ax,iA + asm { + mov ax,iA mov ax,iA mov ax,iA mov ax,iA