나는 tsr을 등록한 다음 종료 할 어셈블리 덩어리를 작성하고 있습니다. dos에서 실행할 수있는 형식으로 이것을 올바르게 어셈블하는 방법을 고민하고 있습니다. 우분투 9.04 및 Windows XP에 액세스 할 수 있습니다. (리눅스 방법이 선호된다). 누구든지 내 코드를 DOS 실행 파일 형식으로 어셈블하는 방법을 알 수 있다면 dos에서 실행하는 방법
다음 코드 조각을 게시 할 때이 코드의 기본 목적은 트랩 플래그를 1로 설정하면 그 후에 화면에 문자 z를 트랩으로 인쇄 할 때입니다. 플래그가 설정되면 프로그램에서 하나의 명령과 트랩을 실행해야합니다. F2 키의 스캔 코드를 볼 수 있으므로 F2 키를 누르면 무한 루프가있는 간단한 트랩 ISR이 작성됩니다. 프로그램에서 kbisr이라는 키보드 isr. 이
DOS 용 TSR com 파일을 만드는 데 문제가 있습니다. 21 번째 인터럽트에 새로운 처리기를 설정하고 종료하고 상주해야합니다. 새 처리기는 이전 인터럽트 21h 처리기로 제어를 전송해야합니다. 그 인터럽트 벡터를 저장하지만 올바르게 호출하는 방법을 모른다. 여기에 프로그램 :이 .model tiny
.data
old_int21h dw ?,
매우 기본적인 TSR 코드가 있습니다. 그것은 "D"키를 입력하면 화면에 "E"를 인쇄합니다. 내가 원하는 것은 : "ESC"버튼을 누르면 TSR을 제거하고 원래의 BIOS 루틴으로 돌아가고 싶습니다. org 100h
equ 060h
EOI equ 020h
Master_8259 equ 020h
main:
call _inst
그것은 시간을 표시하지만 아무것도 하지 않습니다해야 ; PROGRAM FOR TSR FOR CLOCK
.MODEL TINY
.CODE
ORG 100H
START:
JMP INITS ;Jump to initialization portion
ADRS DD ?
TIME1:
PUSH AX
PUSH B
MS-DOS 용 어셈블리 (16 비트)에 TSR (Terminate-Stay-Resident) 프로그램을 작성하려고했습니다. 나는 위키피디아 페이지 TSR과 또한 그것을 DOS에서 특별히 사용하는 페이지를 통해 읽었습니다. (하지만 C로 직접 가르치는 것 같고 어셈블리는 아닙니다.) 나는 수많은 도스 인터럽트 문서가있는 사이트를 살펴본 결과 this one
나는 nasm에 tsr 프로그램을 만들었습니다. 그것은 잘 작동하지만 나는 또한 그것을 memmory에서 제거하고 복원 내가 'ESC'버튼을 누르면 모든 구부러진 interupts 원래로해야합니다. 이것은 'ESC'버튼을 누를 때 실행되는 코드의 일부입니다. uninst:
cli
xor ax, ax
mov es, ax
mov ax, [stari_in