, 이것은 나에게 매우 혼란, 총회에 모든 자습서는 CPU를 내장 레지스터의 적은 숫자가 말한다 그래서 나는이 같은 계산을 위해 레지스터를 사용하는 프로그램을 작성하는 경우 : 후제한된 수의 레지스터로 CPU가 한 번에 여러 응용 프로그램을 어떻게 실행합니까?
global _start
section .text
_start:
reStrt: ; Label, Restart...
MOV ah, 0 ; Initialise ah to 0
INC ah ; ah++ [OR] ah=1
JMP reStrt ; Unconditional jump to label "reStrt"
을 이 코드를 Subsystem : CONSOLE과 조립 및 연결하고, 나는 그것을 시작하고 절대로 종료하지 않는 프로그램을 볼 것입니다.
닫기 콘솔 창에서 [X] 버튼을 눌러야하며, 동시에이 프로그램이 실행되는 동안 ah 등록을 사용하여 1 씩 증가하고 1 씩 감소 시키면 해당 응용 프로그램을 다시 시작합니다 , 이제 같은 프로그램이 같은 시간에 2 번 실행됩니다.
하지만 어떻게 그렇게 할 수 있습니까? AH 레지스터가 CPU에서 하나 인 경우 두 프로그램이 해당 레지스터를 공유 할 수는 있지만 값을 다른 레지스터와 공유하지는 마십시오. B'cause 나는 심지어 메모리 (RAM)에 값을 저장하기 위해 변수 (레이블)를 만들지 않았습니다. 또한 레지스터가 수백 개 있지만 응용 프로그램이 각각 하나의 복사본을 사용하도록 제한되어있는 경우 내 컴퓨터에서 처리 할 수있는 프로세스의 양은 어떻게 나타낼 수 있습니까? memory 어딘가에 특히 registerscontext switches에서
많은 단어를 대문자로 표기하지 않아도됩니다. –