data、idata、pdata、xdata、code
ROM이나 Flash, 프로그램 메모리 구역이라고 하는데 쓴 프로그램은 이 안에 존재하고 전기가 들어간 후에 이 안에서 실행된다.프로그램 저장 구역도 영화 내부와 영화 밖으로 나뉘는데 일반적으로 현재의 51은 64K를 달성했기 때문에 외부 확대가 매우 적다.영화 밖 Flash나 영화 밖의Rom입니다. Flash나Rom은 영화 안이든 영화 밖이든 상수를 정의하는 데만 사용되고 코드로 장식됩니다.코드로 수식된 것은 프로그램이 실행되는 과정에서 수정할 수 없다는 것이다.
RAM
data
이다. 예를 들어 내가 정의한 변수 ,data unsigned char Var = 0;
이면 이Var 변수는 내부의 낮은 128비트 Ram에 놓인다.idata unsigned char Var = 0;
이다. 그러면 이Var 변수는 내부의 높이 128비트Ram에 놓인 것이다.idata
의 범위는 0x00 ~ 0xFF
에서 알 수 있듯이idata는 데이터를 포함하고 차이점은 주소 찾기 방식만 다르다!동시에 0x80~0xFF
, 이 필름 안의 RAM은 보통 인터럽트와 함수 호출을 위한 창고에 사용되며 일반적으로 사용되지 않는다.0x20~0x2F
은 위치추적 가능 구역으로 C 언어에 대응하는 bdata
이다.Sfr unsigned char Var = 0x90;
이다. 그러면 이Var변수는 내부에 놓인 특수기능 레지스터이다. 이것은Var에 대한 조작이고 특수한 레지스터를 조작하는 것과 같다. 그러나 조심해라. Sfr변수를 함부로 정의하지 못하면 위험하다!!pdata
으로 수식한 것이다. 물론 xdata
으로 수식할 수도 있다.첫 페이지의 256
개를 제외한 나머지 65280
개의 공간은 x데이터로만 수식할 수 있습니다.Pdata
이다. Xdata
의 수식 변수 때문에 DPTR(DPTRH DPTRL)
의 주소를 사용했고 Pdata
은 R0 R1
을 사용했다.DPTR
은 16
의 것이기 때문에 전체 64K 외부 램을 덮어쓸 수 있다. R0과 R1은 8자리이기 때문에 맨 앞에 있는 256개, 즉 외부 램의 첫 페이지만 찾을 수 있다. 그러나 R0으로 주소를 찾으면 DPTR보다 배가 빠르고 코드도 매우 작다.그럼 질문이 왔습니다. 많은 주소가 중복되어 있습니다!예를 들어, 나는 80H 주소에 수치를 썼는데, 단편기는 내부의 128비트 램을 읽는 것을 어떻게 알았습니까?아니면 SFR?아니면 외부 64K 램인가요?
답: 지령으로 직접 주소를 찾으면
SFR
에 방문한다.R0이나 R1의 간접 주소지라면 128 RAM
이고, DPTR이나 R0, R1의 간접 주소지라면 MovX 명령에 맞추면 외부 64KRAM의 80H 주소에 접근한다.요약하면 51의 메모리는 다음과 같습니다.
외장 메모리 영역은 외장 확장된 플래시일 수도 있고 외장 확장된RAM이라고 할 수도 있다.
프로그램이나 상수는 영화 밖 저장소에 저장됩니다. - Flash에!변수는 필름 밖 저장 영역 - 외부 확장 RAM에 저장;
슬라이스 메모리 영역은 내부 램을 가리키며 높이 128비트(idata)와 낮은 128비트(data)를 포함한다.
칩 내 기억 장치, 아마도 EEPROM일 것이다.
주의:RAM은 변수를 저장하는 것이지만 SRAM, DRAM, FRAM(철전기 랜덤 액세스 메모리), MRAM(자성 랜덤 액세스 메모리), 본질은 RAM이다. 구역의 구분은 우리가 말한 것이다!
대수롭지 않게 하다
STC89C52RC (512 RAM,8K ROM)
STC89C52RC 시리즈 단편기는 512B의RAM이 있는데 위에서 말한 바와 같이 우리도 알고 있다.256편 내, 256편 외, 즉 256일반 RAM(idata), 256확장 RAM(xdata).
IAP15F2K60S2 (2K RAM,60K ROM)
일반 256바이트 RAM
과 내부 확장 1792바이트 XRAM
입니다.위에서
bdata
, 즉 위치 주소 찾기를 언급했는데 MCS-51의 위치 찾기와 관련된 지식을 정리해 봅시다.비트 주소 공간은 총 224
비트로 2부분으로 구성되어 있다. 내부 데이터 저장소 20H~2FH
단원(16개 단원마다 8비트씩 비트별로 128개의 주소를 조작할 수 있다. 주소 번호: 00H~7FH)또 일부는
블록에서 모두 12개의 특수 레지스터가 비트 조작을 할 수 있는데 그것이 ACC, B, PSW, P0, P1, P2, P3, IP, IE, TCON, T2COIN, SCON(주소는 80H~FFH
사이)이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails Turbolinks를 페이지 단위로 비활성화하는 방법원래 Turobolinks란? Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고, 이동한 페이지를 Ajax에서 가져옵니다. 그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.