º£²ó¤Ï¥»¥¯¥¿£²°Ê¹ß¤òÆɤ߼è¤Ã¤Æ¤½¤³¤Î¥¢¥É¥ì¥¹¤ËÈô¤Ö¥Æ¥¹¥È¤Ç¤¹¡£
¼«Í³¤Ë¥»¥¯¥¿¤òÆɤ߼è¤Ã¤Æ»ØÄê¤Î¥á¥â¥ê¤Ë½ñ¤¹þ¤ó¤À¤ê¤½¤³¤ËÈô¤ó¤À¤ê¤Ç¤¤ì¤Ð¡¢DOS¤È¤«¤òµ¤¤Ë¤»¤º¼«Í³¤Ë¥á¥â¥ê¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥à¤òÆ°¤«¤¹¤³¤È¤¬²Äǽ¤È¤Ê¤ë¤Ï¤º¤Ç¤¹¡¢ÍýÏÀ¾å¡£
¤È¤¤¤¦¤³¤È¤Çº£²ó¤Î¥³¡¼¥É¤Ï²¼¤ÎÄ̤ꡣ
.model tiny
.386
CODE SEGMENT
assume DS:CODE,CS:CODE,ES:CODE,SS:CODE
mov ax,cs ; ¥ì¥¸¥¹¥¿½é´ü²½
mov ds,ax
mov es,ax
mov fs,ax
mov gs,ax
mov ax,60
mov ss,ax
mov eax,0FFh
mov sp,ax
;¥»¥¯¥¿4¤òÆɤ߹þ¤ß(SEG:70,ofs:0¤«¤é)
push bp
mov ax,70h
mov es,ax
mov bp,0
mov ah,01110110b
mov al,90h
mov ch,03h
mov cl,0
mov dh,0
mov dl,04h
mov bx,400h
int 1bh
pop bp
mov si,offset AD
jmp dword ptr [si] ;SEG:70h¤«¤é¥×¥í¥°¥é¥à¤òÆɤ߹þ¤Þ¤»¤ë
AD word 0
SE word 70h
ORG 1024*3
MAIN:
mov ax,0A000h
mov es,ax
mov edx,23
mov edi,2000h
add edi,80
mov eax,0F1h
@@: mov ecx,30
push edi
rep STOSW
pop edi
add edi,160
dec edx
jnz @b
mov edx,23
mov edi,80
mov eax,087h
@@: mov ecx,30
push edi
rep STOSW
pop edi
add edi,160
dec edx
jnz @b
@@:
jmp @b
CODE ENDS
END
¥á¥â¥ê¤Î6FFh°ÊÁ°¤ò¥¹¥¿¥Ã¥¯Îΰè¤Ë¡¢700h°Ê¹ß¤ò¥×¥í¥°¥é¥à¤È¤«¤Î¼ÂÂΤÎÎΰè¤È¤·¤Æ»È¤¦ÀßÄê(¤È¤¤¤¦¤«ÌÑÁÛ¡©)¤Ç¤¹¡£
IPL¼«ÂΤÏDISK BIOS¤Ç700h¤Ë¥»¥¯¥¿4¤òÆɤ߹þ¤ó¤Çjmp¤¹¤ë¤À¤±¤Î¥·¥ó¥×¥ë¤Ê¥³¡¼¥É¤Ç¤¹¡£
DISK BIOS¤ÏMS-DOS¤¸¤ã¤Ê¤¤¤Î¤Çµ¯Æ°»þ¤Ë¥á¥â¥ê¾å¤ËÁȤ߹þ¤Þ¤ì¡¢·ë²Ì¤³¤¦¤¤¤¦¼êÈ´¤¤¬²Äǽ¤Ç¤¹¡£
¤Ê¤ª¡¢¼Âµ¡BIOS¤Ê¤·¤Ç¤â¸ß´¹¤Î¤â¤Î¤¬Æ±Åù¤ÎƯ¤¤ò¤¹¤ë¤Î¤ÇÆ°¤¤Þ¤¹¡£
¥»¥°¥á¥ó¥È¤Î½é´ü²½¤Ï¥Æ¥¥È¡¼¤Ç¤¹¤Î¤Ç¡¢Å¬Àڤʤâ¤Î¤Ë½ñ¤´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£
jmp¤Î¸å¤ÏÁ°²ó¤Î¤â¤Î¤ò386°Ê¹ßÍѤäݤ¯¤·¤Æ¤½¤Î¤Þ¤ÞήÍѤ·¤Æ¤¤¤ë¤Î¤Ç¥»¥°¥á¥ó¥È¤ÎºÆÀßÄê¤Ï¤·¤Æ¤Þ¤»¤ó¤¬¡¢ËÜÍè¤ÏɬÍפÀ¤È»×¤¤¤Þ¤¹¡£
¤³¤ó¤Ê¤Î¤ò¤â¤Ã¤ÈËܳÊŪ¤Ë¤¹¤ì¤Ð¡¢¤¤Ã¤È¤½¤ì¤Ã¤Ý¤¤IPL¤Ë¤Ê¤ë¡¢¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¤È¡£
¥ê¥¢¥ë¥â¡¼¥É¤Ë¤·¤Æ¤«¤éÆɤ߹þ¤ó¤Çjmp¡¢¤È¤«¤Ç¡Ä¤¤Ã¤È¡¢¤ª¤½¤é¤¯¡¢Â¿Ê¬¡£
¼«Í³¤Ë¥»¥¯¥¿¤òÆɤ߼è¤Ã¤Æ»ØÄê¤Î¥á¥â¥ê¤Ë½ñ¤¹þ¤ó¤À¤ê¤½¤³¤ËÈô¤ó¤À¤ê¤Ç¤¤ì¤Ð¡¢DOS¤È¤«¤òµ¤¤Ë¤»¤º¼«Í³¤Ë¥á¥â¥ê¤ò»È¤Ã¤Æ¥×¥í¥°¥é¥à¤òÆ°¤«¤¹¤³¤È¤¬²Äǽ¤È¤Ê¤ë¤Ï¤º¤Ç¤¹¡¢ÍýÏÀ¾å¡£
¤È¤¤¤¦¤³¤È¤Çº£²ó¤Î¥³¡¼¥É¤Ï²¼¤ÎÄ̤ꡣ
.model tiny
.386
CODE SEGMENT
assume DS:CODE,CS:CODE,ES:CODE,SS:CODE
mov ax,cs ; ¥ì¥¸¥¹¥¿½é´ü²½
mov ds,ax
mov es,ax
mov fs,ax
mov gs,ax
mov ax,60
mov ss,ax
mov eax,0FFh
mov sp,ax
;¥»¥¯¥¿4¤òÆɤ߹þ¤ß(SEG:70,ofs:0¤«¤é)
push bp
mov ax,70h
mov es,ax
mov bp,0
mov ah,01110110b
mov al,90h
mov ch,03h
mov cl,0
mov dh,0
mov dl,04h
mov bx,400h
int 1bh
pop bp
mov si,offset AD
jmp dword ptr [si] ;SEG:70h¤«¤é¥×¥í¥°¥é¥à¤òÆɤ߹þ¤Þ¤»¤ë
AD word 0
SE word 70h
ORG 1024*3
MAIN:
mov ax,0A000h
mov es,ax
mov edx,23
mov edi,2000h
add edi,80
mov eax,0F1h
@@: mov ecx,30
push edi
rep STOSW
pop edi
add edi,160
dec edx
jnz @b
mov edx,23
mov edi,80
mov eax,087h
@@: mov ecx,30
push edi
rep STOSW
pop edi
add edi,160
dec edx
jnz @b
@@:
jmp @b
CODE ENDS
END
¥á¥â¥ê¤Î6FFh°ÊÁ°¤ò¥¹¥¿¥Ã¥¯Îΰè¤Ë¡¢700h°Ê¹ß¤ò¥×¥í¥°¥é¥à¤È¤«¤Î¼ÂÂΤÎÎΰè¤È¤·¤Æ»È¤¦ÀßÄê(¤È¤¤¤¦¤«ÌÑÁÛ¡©)¤Ç¤¹¡£
IPL¼«ÂΤÏDISK BIOS¤Ç700h¤Ë¥»¥¯¥¿4¤òÆɤ߹þ¤ó¤Çjmp¤¹¤ë¤À¤±¤Î¥·¥ó¥×¥ë¤Ê¥³¡¼¥É¤Ç¤¹¡£
DISK BIOS¤ÏMS-DOS¤¸¤ã¤Ê¤¤¤Î¤Çµ¯Æ°»þ¤Ë¥á¥â¥ê¾å¤ËÁȤ߹þ¤Þ¤ì¡¢·ë²Ì¤³¤¦¤¤¤¦¼êÈ´¤¤¬²Äǽ¤Ç¤¹¡£
¤Ê¤ª¡¢¼Âµ¡BIOS¤Ê¤·¤Ç¤â¸ß´¹¤Î¤â¤Î¤¬Æ±Åù¤ÎƯ¤¤ò¤¹¤ë¤Î¤ÇÆ°¤¤Þ¤¹¡£
¥»¥°¥á¥ó¥È¤Î½é´ü²½¤Ï¥Æ¥¥È¡¼¤Ç¤¹¤Î¤Ç¡¢Å¬Àڤʤâ¤Î¤Ë½ñ¤´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£
jmp¤Î¸å¤ÏÁ°²ó¤Î¤â¤Î¤ò386°Ê¹ßÍѤäݤ¯¤·¤Æ¤½¤Î¤Þ¤ÞήÍѤ·¤Æ¤¤¤ë¤Î¤Ç¥»¥°¥á¥ó¥È¤ÎºÆÀßÄê¤Ï¤·¤Æ¤Þ¤»¤ó¤¬¡¢ËÜÍè¤ÏɬÍפÀ¤È»×¤¤¤Þ¤¹¡£
¤³¤ó¤Ê¤Î¤ò¤â¤Ã¤ÈËܳÊŪ¤Ë¤¹¤ì¤Ð¡¢¤¤Ã¤È¤½¤ì¤Ã¤Ý¤¤IPL¤Ë¤Ê¤ë¡¢¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¤È¡£
¥ê¥¢¥ë¥â¡¼¥É¤Ë¤·¤Æ¤«¤éÆɤ߹þ¤ó¤Çjmp¡¢¤È¤«¤Ç¡Ä¤¤Ã¤È¡¢¤ª¤½¤é¤¯¡¢Â¿Ê¬¡£
ºÇ¿·¥³¥á¥ó¥È
2023-03-05
2020-09-15