나는 특정 프로그램을 에뮬레이트해야하는 에뮬레이터에 대해 연구 중이다. COM 파일과 소스 파일이 있습니다.데이터 세그먼트에 무엇을로드해야합니까?
mov cl, [017B] 8A 0E 7B 01
나는 그것이 DS
(데이터 세그먼트)에서 값을 이동하는 것을 의미한다 알을 CL
레지스터로 017B
를 오프셋 : 지금이 특정 명령을 에뮬레이트 할 필요가 (이것은 내가 도스 박스 디버거에서 볼 수있는 것입니다). 그러나 무엇이 DS
에 있어야합니까? 내 프로그램을 시작할 때
.386p
.model tiny
code segment use16
assume cs:code
org 100h
begin:
mov ax, 3h
int 10h
...
mov cl, byte ptr ds:[keylen] <-- This is the instruction I'm talking about
...
int 20h
keylen db 13
key1 db 20h, 3ah, 23h, 32h, 0bh, 3dh, 1fh, 13h, 4ch, 19h, 05h, 07h, 07h, 00h
key2 db 00h, 0ah, 11h, 08h, 03h, 1dh, 1ah, 08h, 04h, 2ch, 3fh, 33h, 1ah, 41h
key3 db 01h, 00h, 08h, 0bh, 0ch, 07h, 0ah, 05h, 02h, 09h, 06h, 03h, 04h, 00h
code ends
end begin
내가 DS
에 무엇을 저장해야합니다 :
프로그램 나는 (소스 파일)을 에뮬레이션하기 위해 노력하고있어? 내가 지금하고 있다고 생각하는 것은 설정하는 것입니다 DS = CS = ES = SS = SPECIFIC_ADDRESS
를 (작은 모델 ') CS = DS = ES = SS = 당신이 프로그램에 컨트롤을 전송하기 전에 당신이 사용하는 PSP의 세그먼트. 이것은 COM (EXE가 아님)에만 적용됩니다. –
이것은 당신에게 유용 할 수 있습니다 : http://www.fysnet.net/yourhelp.htm (코드가'cs : 0000- cs : 00FF' 범위). – Ped7g
@MichaelPetch 알아, COM 프로그램 – Sk1X1