2013-12-21 1 views
0

어셈블리 클래스를 가져오고 있는데 시험이오고 있습니다. 그래서 어셈블리와 같은 비 구조적 언어로 된 소스 코드의 표준 형식과 구조는 무엇입니까?)? 현재 새 탭 열의 레이블 다음에 실행하고 나중에 사용하지 않을 불필요한 레이블을 사용하지 않는 모든 것을 가지고 아래처럼 코드를 포맷하고 싶습니다.어셈블리 형식 및 코드 구조

code segment 
    start: 
     mov ax,data 
     mov ds,ax 

     mov cx,2 
     label1: 
      mov dl,'a' 
      mov ah,2 
      int 21h 
      loop label1 

     mov ah,4ch 
     int 21h 
code ends 

하지만 교수님은 완전히 우스꽝스럽게 생각하는 것을하고 있습니다. 물론

PRINT_HEX PROC 
    H1: MOV BP,SP 
     MOV CX,4  
    H2: MOV BX,[BP+2] 
    H3: XOR DL,DL 
     PUSH CX 
     MOV CX,4 
    H4: SHL BX,1 
     RCL DL,1 
    H5: LOOP H4 
     POP CX 
    H6: CMP DL,9  
     JA GRAMMA 
     ADD DL,48 
     JMP H7 
    GRAMMA: ADD DL, 55 
    H7: MOV AH,2 
     INT 21H 
    H8: LOOP H3 
    H9: RET 
PRINT_HEX ENDP 

그는 분명 내가 약 조립 그러나 그의 방법은 나에게 잘못된 것보다 더 많이 알고 : 그는 불필요한 레이블을 사용하여 레이블 탭을 사용하지 않는, 아래처럼 코드를 포맷합니다. 라벨이있는 언어로 코드를 포맷하는 표준 방법은 무엇입니까?

+1

들여 쓰기를 제외하고, 개인적으로, 외부 레이블은 나를 괴롭 히며, 특히 후자의 코드에서와 같이 무의미한 이름을 붙입니다. 그가 가르치면서 특정 지시 사항을 쉽게 참조 할 수 있도록 추가하는 것이 아니라고 확신합니까? –

+0

다른 언어와 마찬가지로 많은 스타일이 있습니다 (그리고 필연적 인 화염 전쟁). 대부분의 주석 체계는 들여 쓰기 된 opcode가있는 가장 왼쪽 열의 레이블입니다. 일부 어셈블러 파서가이 규칙을 시행합니다. 귀하의 변형도 확실히 사용되며, 종종 기본 제어 구조를 제공하는 매크로 패키지와 결합됩니다. 고백해야합니다. 비록 아무도 무차별 적으로 모든 라인에 레이블을 붙이는 것을 본 적이 없지만 – doynax

+0

@JoachimIsaksson, 나중에 그는 언급하지 않습니다. 위의 코드에서 명확하게 볼 수는 없지만 비슷한 코드 세그먼트를 분리하기 위해 두었습니다. 사물을 인쇄하는 줄이 3 줄이면 레이블 아래에이 세 줄을 같이 넣었을 것입니다. – SteveL

답변

1

나는 writting 어셈블리에 대한 표준 스타일이 없다고 생각합니다. C에서 writting을위한 단일 표준이 없기 때문에 이것은 접근법이 상당히 합리적이라고 생각합니다. 프로 시저 내부의 루프는 쉽게 발견 할 수 있습니다. 루프 몸체의 나머지 부분과 같은 레벨의 루프 카운터와 그 코드 블록을 시각적으로 프레임 화하는 빈 줄. 내가 첫 번째 열에서 시작 퍼팅 라벨의 전통이 때부터가는 생각

code segment 
start: mov ax,data 
     mov ds,ax 

     mov cx,2 
label1: mov dl,'a' 
     mov ah,2 
     int 21h 
     loop label1 

     mov ah,4ch 
     int 21h 
code ends 

:

8 비트 컴퓨터를위한 어셈블리에 기록 된 고대의 코드를

, 나는 여러 번이을 writting의 종류 발견했습니다 그 어셈블러는 레이블, 명령어 및 피연산자가 어디로 가야하는지와 같은 몇 가지 가정을하는 매우 간단한 프로그램이었습니다. ZX 스펙트럼의 Hisoft DevPac은 첫 번째 열에 쓰여진 것이 레이블이라고 가정 했으므로 레이블 자체 뒤에 콜론이 필요하지 않습니다. 그 당시 어셈블러를 배운 많은 사람들이 있기 때문에, 그들은 이전과 같은 방식으로 글쓰기를 계속 해왔다.