HW 할당을 위해 리눅스 부트 프로그램을 프로그래밍 중이며 메모리에서 워드를 읽거나 쓰는 기능을 만들어야한다는 것을 알고 있습니다. 나는 올바른 길을 가고 있는지 아닌지를 결정하는 데 어려움을 겪고 있으며 도움이된다면 큰 도움이 될 것입니다. 필자는이 함수들을 테스트 할 것이지만, 모든 것을 함께 집어 넣기 전에 핵심 함수를 만드는 작업을해야하므로이 시점에서는 불가능합니다. 나는 내가 위의 경우 확실하지 않다 어셈블리에서 코드와 CC 리눅스에서 메모리 읽기/쓰기 워드 (세그먼트, 오프셋)
unsigned short get_word(unsigned short segment, unsigned short offset)
{
unsigned short word, low, hi;
low = get_byte(segment, offset);
high = get_byte(segment, offset+1);
word = low+hi;
return word;
}
에 수출 선생님에 의해 작동하는 검증 get_byte (세그먼트, 오프셋)/put_byte는 (문자는, 세그먼트, 오프셋)를 받았다 옳은. 안녕과 낮은 조합이 필요하다는 것을 알고 있습니다. 추가하기가 좋을까요 아니면 단순히 낮은 것을해야합니까 & 안녕하세요? 그 결과를 돌려 주시겠습니까? 내가 완전히 기지에서 멀어 졌다면 알려주세요. unsigned short가되도록 오프셋이 맞습니까? 아니면 int 여야합니까?
int put_word(unsigned short word, unsigned short segment, unsigned short offset)
{
unsigned short low, hi;
low = word | offset;
hi = word | offset+1
put_byte(segment, low);
put_byte(segment, hi);
return 0;
}
위의 코드가 옳은 것에 가까운 것이지만 내 추측에 맞는지는 잘 모르겠다.
누구나 해결책을 알고 있거나 조언을 구할 수 있습니까? 이 함수들은 꽤 기초적인 것이어야하지만 막혀 있고 내 임무의 실제 부분을 따라갈 필요가 있습니다.
UPDATE (12:46) : 고정 된 put_byte()는 아래에 명시된 것처럼 고정 된 두 개의 인수 만 허용하는 것이 바람직하지 않습니다. 실수로 사과드립니다.
남자 나는 리눅스에서 작동하는 get_byte와 put_byte를보고 싶다. – Joshua