텍스트 모드 80x25에서 작업 중이며 인쇄하기 위해 0으로 끝나는 일부 문자열이있을 것으로 예상됩니다 (전에 CRLF 없음). 다음 줄로 어떻게 넘어갈 수 있습니까? 내가 실제로 필요한 것은 es : edi (0 : b8000) 오프셋을 다음 승수 160에 맞추는 것이지만 어떻게 든 그것을 영리하게하는 방법을 모른다. 이미이 작업을 수행했거나 아이디어가 있으면 나에게 알려 주시거나 나에게 힌트를주십시오. 나는 분할없이 어떤 인터럽트 나 솔루션도 원하지 않는다.새 줄을 구현하는 방법
답변
앤더스, 내가 같은 것을 할 거라고 말한대로 들으 스투 :
- 이 줄을 추가입니다
nextlineoffset = offset + (160 - ((offset + 160) mod 160))
는
- 멀리 빼기 상쇄 여분는
하나의 디비전을 사용하지만 곱셈의 필요성을 없애줍니다.
만약 160이 128 + 32가 항상 같은 2 비트 인 사실을 사용할 수 있다면 오히려 생각하고있었습니다. 그래서 어떻게 든 마스크를 제거하고, 설정하고/지워 버리면 모든 것을 0으로 만듭니다. 그런 다음 160을 추가하십시오. – Pyjong
switch
과 같은 구조는 어떨까요? 80x25 화면에서 160 개의 문자 청크에만 관심이있는 경우에는 13 개의 사례 만 고려해야하며 이는 CMP
의 관리 가능한 (렌더링 가능) 시퀀스 및 조건부 점프 여야합니다.
아이디어가 훌륭합니다. 불행히도 비디오 RAM이 160 문자 덩어리가 아니지만 색상 문자 쌍이 25 가지이므로 25 * (5 + 5 + 2) (5 cmp, 5 mov 및 2 점프 점프) 바이트 및 나는 부트 로더에서 512 바이트 공간을 얻고 stil 할 일이있어. 분할 방식은 내가 시도한 것에 대해 각 줄 바꿈에서 14 바이트와 같을 것입니다. – Pyjong
나는 마지막으로 문자 인쇄를 계산하고 그것이 이미 80인지 여부를 확인하는 것이 가장 효과적이라고 생각합니다. 그 비교가 좋지는 않지만 끊임없이 9 바이트는 내가 원했던 것입니다. – Pyjong
- 1. android : 새 줄을 추가하는 방법
- 2. 새 줄을 긁어 내기
- 3. mailmessage.body 섹션에 새 줄을 제공하는 방법
- 4. IB에서 UITextView에 새 줄을 입력하는 방법
- 5. 파일에 새 줄을 추가 하시겠습니까?
- 6. iPhone UITextField : return 키를 사용하여 새 줄을 삽입하는 방법?
- 7. 새 줄을 출력하지 않고 파이썬에서 입력을 쿼리하는 방법
- 8. WPF dataGrid의 Tab 키에 새 줄을 추가하는 방법
- 9. C# : TextBox에 새 줄을 포함하는 문자열을 삽입하는 방법?
- 10. RoR : 일반 텍스트 전자 메일에서 빈/새 줄을 얻는 방법
- 11. C 프로그램을 사용하여 파일의 새 줄을 감지하는 방법
- 12. jQuery로 텍스트 변경 사항을 표시하는 div에 새 줄을 삽입하는 방법
- 13. 파이썬을 사용하여 CSV 파일에 새 줄을 추가하는 방법
- 14. Qt에서 새 줄을 다시 그리기 전에 이전에 그려진 줄을 제거하거나 지우는 방법?
- 15. C++에서 새 줄을 식별하는 방법은 무엇입니까?
- 16. float : IE7에서 오른쪽으로 새 줄을 지어
- 17. 어떻게 안드로이드에 html 형식으로 새 줄을 추가합니까?
- 18. 'O'가 새 줄을 열기 전에 지연됩니까?
- 19. 인쇄기를 사용할 때 새 줄을 제거하십시오.
- 20. vim으로 새 줄을 붙여 넣는 방법은 무엇입니까?
- 21. \ n은 작동하지 않고 새 줄을 사용하지 않습니다.
- 22. 새 줄을 제거 할 수 없습니다
- 23. xslt에서 새 줄을 가져 오지 못했습니다.
- 24. Jtextarea에서 줄을 선택하는 방법?
- 25. Java에서 게이트웨이를 구현하는 방법
- 26. 마지막 줄을 표시하도록 목록보기를 유지하는 방법
- 27. java.lang.Comparable을 구현하는 클래스를 변환하여 Scala.Ordered를 구현하는 방법?
- 28. 11 이하의 API 수준에서 작업 표시 줄을 구현하는 방법은 무엇입니까?
- 29. 개체 수정 추적을 구현하는 방법
- 30. 선택 필드 번역을 구현하는 방법
필자는 어셈블리 프로그래머가 아니지만 오프셋에 160을 더할 수 없으며 나머지를 'DIV'를 사용하여 계산하고 오프셋에서 뺍니다. –
음침한 생각이 들었습니다.하지만 적어도 2 개의 레지스터가 덮어 쓰여졌 기 때문에 그다지 짧지는 않습니다. 그렇지만 비트 매싱 방법이 없다면이 방법으로 할 것입니다. – Pyjong
또 다른 접근법은 간단합니다. 2000 바이트 룩업 테이블 인 offset -> next 160-multiple을 사용하십시오. –