아뭏든, 하나 있으면 좋을 것 같아 만들어봤다.
일단, 아래 파일을 다운받아 압축을 풀고 올리고 나서
아래의 내용을 HTML 헤더에 추가한 뒤에
<script type="text/javascript" src="scripts/shBrushAsm.js"></script>
아래와 같이 적으면 된다.
<pre class="brush: asm;">어셈블러 코드</pre>
brush 명은 asm 또는 x86을 사용하면 된다.
기타 자세한 설명은 기존 포스팅을 참고. (어짜피 이거 쓰려는 분들은 뭔지 잘 아실 것이니 자세한 설명은 생략)
적용한 화면은 아래와 같다.
그런데, 문제가 있다.
당연한 얘기지만, SH의 브러쉬는 거대한 정규식 덩어리다.
주석 역시 정규식으로 지정되어 있는데, 하필 어셈블러의 주석은 애매하기 짝이 없는 세미콜론(;)이다.
이건 단독으로는 평범한 문자이지만, 와 같이 사용될 때는 의미를 갖기 때문에 정규식으로 구성하기가 너무 어렵다.
현재는 아래와 같이 애매하게 지정해뒀다.
{ regex: /^;.*$/gm, css: 'comments' }, // one line comments
{ regex: /\s\;.*$/gm, css: 'comments' }, // one line comments
즉, 행의 맨 처음이거나 바로 앞에 공백이 있는 경우만 주석으로 처리하는 것이다.
이게 문제가 될 수 있는 것이 mov ecx, 32;00000020H 처럼 쓰는 경우엔 주석으로 인식을 못 하는 거다.
정규식으로 &문자열; 의 포맷이 아닌 경우를 찾는 방법을 못 찾아 미봉책만 쓴 것이다.
혹시 이런 경우에 사용할 수 있는 정규식을 아시는 고수분 계시면 한 수 가르침 부탁드린다.
엉엉 뺏겼다 ㅜㅠ
답글삭제트랙백 감사합니다. 저는 만들던 거 계속 만들어도 되겠죠? ㅋㅋㅋ
@Un-i-que - 2009/09/09 22:13
답글삭제그래도 제가 만든 게 예약어가 훨 많다능! ㅎㅎ
@BLUEnLIVE - 2009/09/09 22:44
답글삭제GAS랑 NASM, MASM을 짬뽕해 놓으시지 않았습니까-_-;; 그리고 제 거는 일단 8086 표준 명령어을 기준으로 하고 있죠.
흠... 그런데 예약어도 asm이고 파일명도 shBrushAsm.zip이군요.
블루앤라이브 님께서 싫지 않으시다면 ARM 명령어를 추가해 보는 건 어떨까요. (응?)
그리고 제 거 계속 만들어도 되냐는 질문에는 아직 대답 안 해 주셨습니다 ㅋㅋㅋ
trackback from: 블로그에 8086 어셈블러 (NASM) 게시하기
답글삭제shBrushNasm8086.js 앞쪽에서 말한 바가 있지만, 이건 그냥 이렇게 따로 써 놓는 게 나을 것 같아서 말입니다. 1. SyntaxHighlighter를 설치합니다. 설치되어 있으면... 뭐. 그렇죠. 설치하시려면, 뭐 들보 님의 지나간 덧글에도 있지만, 블루앤라이브 님의 포스트 http://zoc.kr/547 가 큰 참고가 될 겁니다. 2. 티스토리라면, 압축을 푼 파일을 업로드하고 HTML/CSS 편집에 이런 코드를 추가하셨겠죠? <h..
@Un-i-que - 2009/09/09 22:13
답글삭제ㅎㅎ
사실, 저 예약어들은 어디에선가 사용하는 걸 스브적 업어왔... (응?)
그리고... 만드시는 걸 저한테 허락을 받으실 수야... ㅎㅎㅎ