문자열을 메모리에 저장하고 그 문자열에 액세스하고 소문자를 대문자로 변경하려고합니다. 내가 이해할 수없는 것은 해당 주소에서 문자열 및 ASCII 값의 주소를 참조하는 방법입니다. 나는 논리를 이해할 수 있다고 믿는다. 단지 데이터와 주소 조작에 문제가있다. 둘을 어떻게 구별합니까? 참고 : 이것은 숙제 코딩 과제입니다.문자열을 저장하고 ATmega168V에서 ASM 언어로 조작 (첫 번째 숙제)
2
A
답변
0
힌트. 대문자와 소문자로 전환하려면 xor value,0x20
으로 "32"비트를 뒤집습니다. 이 문자열을 액세스
SRC: DB 'Press A Key To Continue', 0; Our source string
DST: DB 'Press A Key To Continue', 0; Where we will put our string. make sure its big enough so we don't over write our program.
;load MSG+0 to working regist
;flip the 32 bit
;move the working register to DST + 0
;load MSG+1 and repeat
0
같을 것이다 Z80 어셈블러에
가 플래시 또는 RAM에 있는지에 따라 다릅니다 (I 문자열이 부팅 RAM으로 복사 할 수 있다고 생각하지만 난 ' 긍정적이지는 않다). 숙제 문제가 있다고 가정하면 RAM에있는 문자열에 직접 액세스 할 수 있습니다. @EnabrenTane이 지적한 것처럼 문자 바이트의 5 번째 비트를 뒤집어 대소 문자를 바꿀 수 있습니다 (ASCII 바이트 코드에 대해 자세히 알고 싶다면 Wikipedia ASCII page을 읽어보십시오). 당신이 C에서이 작업을 수행하기 위해 필요한 경우 그래서, :char the_string[6] = "foobar" // assuming string is created like this
int l = 6 * sizeof(char); // the length of the string
for(int i=0; i<l; i++) {
char* c = the_string + i; // grab char[i] of the string
*char = *char^0x20; // flip the case
}
the_string
에 저장된 값 위와 같이 생성 된 문자열에 대한
사실이다 (나는이 그렇게 오류가있을 수 있습니다 컴파일 시도하지 않은) 첫 번째 문자의 주소에 대한 포인터. 해당 문자열 내의 특정 문자를 찾으려면 주소에 추가하면됩니다. 문자열을 조작하려면 char*
포인터를 역 참조 할 필요가 있습니다.이 예에서는 원래의 값을 덮어 쓰면서 값을 같은 위치에 다시 저장합니다.
관련 문제
- 1. 첫 번째 문자열 앞에 문자열을 가져옵니다. php로
- 2. 첫 번째 VM/컴파일 언어로 스칼라 배우기 - 워크 플로우 문제
- 3. 첫 번째
- 4. 첫 번째 발생시 분할
- 5. PHP는 문자열의 첫 번째 발견
- 6. 문자열을 첫 번째 문자 (영문자 및 숫자)로 그룹화
- 7. StreamReader ReadToEnd()는 첫 번째 시도에서 빈 문자열을 반환합니다.
- 8. 문자열의 첫 번째 문자 확인
- 9. 첫 번째 응답자로보기
- 10. 첫 번째 기회 예외
- 11. 루프는 첫 번째 반복
- 12. 루프가 첫 번째 반복
- 13. 첫 번째 항목으로 그룹화
- 14. 첫 번째 글자로 그룹화
- 15. 첫 번째 댓글의 제목
- 16. 화면 첫 번째 라인은
- 17. 내 첫 번째 모델보기
- 18. 첫 번째 부스트 프로그램
- 19. 첫 번째 Android 앱
- 20. UITable 첫 번째 섹션에는
- 21. 첫 번째 예외 프로그램
- 22. 첫 번째 단어 선택기
- 23. 장고 첫 번째 프로젝트
- 24. 첫 번째 단계는
- 25. 첫 번째 안드로이드 서비스
- 26. 현지화 - 첫 번째 단계
- 27. 쿼리 .... 첫 번째 반복
- 28. 첫 번째 in .Net
- 29. ResultSet은 첫 번째 값을 잃습니다.
- 30. 파일 조작
어셈블러의 어떤 언어입니까? 아마도 db를 사용해야 할 것입니다. – EnabrenTane
AVR Studio를 사용하고 있습니다. – pisfire
어떤 CPU (제품군)입니까? –