2017-11-28 1 views
6

의 심볼에 새 값을 할당하지 :할당 지시어는 왜 EMU8086에 할당 지침 (=</strong><strong>)를 사용하여 기호 <code>X</code>에 새로운 가치를 다음 코드를 할당하지 않습니다 EMU8086

.model small 
.data 

     X = 8 

.code 
.startup 

     mov ax, @data 
     mov ds, ax 

     mov bx, X 

     X = 6  

     mov bx, X 

     mov ah, 02h 
     mov dx, bx 
     add dx, 48 
     int 21h  ; It should display 6 but instead it display 8. 

     mov ah, 04ch 
     int 21h 

end 
+2

EMU8086의 버그 또는 결함 인 것으로 보입니다. MASM과 TASM을 사용하면 '='로 정의 된 상수 값을 다시 정의 할 수 있습니다. EMU8086은 원래의 값을 취하고 후속 변경 사항을 무시합니다. –

+0

예 ** GUI TURBO ASSEMBLER **에서 확인하고 작동했습니다. 보고해야합니까? – Ahtisham

+0

EMU8086이 아직 유지 관리되는지 잘 모르겠습니다. 버그를보고 할 이메일 주소 나 다른 메커니즘을 찾을 수 없었습니다. –

답변

4

EMU8086는 버그가 /부족. = 지시어가 어떻게 작동하는지 당신의 해석은 correct 경우 : = 지시어로 정의

정수는 소스 코드에서 다른 값으로 재정의하지만 EQU은 할 수있는 사람을 정의 할 수 있습니다. 당신이 MASM 또는 TASM와이를 컴파일 할 경우 대신 86를 표시하여 예상대로

코드가 작동합니다.

EMU8086은 수년간 업데이트되지 않았지만 현재 유지 관리 중이라고 생각하지 않습니다. 제품과 관련된 버그보고 시스템 또는 버그 관련 전자 메일 주소가 나타나지 않습니다.

EMU8086을 사용하지 않는 이유를 찾고 있다면 유지 관리가 부족합니다. 알려진 버그; 제한된 BIOS와 DOS Int 21h 호환성은 다른 도구로 작업을 수행해야하는 이유입니다. 32 비트 및 64 비트 코드를 OS에 맞게 작성하는 것이 더 이상적인 방법입니다. EMU8086은 좋은 교육 도구이지만 심각한 작업에는 사용하지 않아야합니다.

+1

글쎄요, 저는 어셈블리 8086을 배울 것입니다. 심각한 코드를 써라.하지만 내가 그랬다면 똑같이 TASM을 선호 할 것이다 .btw는 감사의 말에 감사한다. – Ahtisham

+1

btw 나는 그물 대신에 EQU와 & = = 지시어의 차이를 배우지 않았다. ** 8088 및 8086 마이크로 프로세서 ** – Ahtisham

관련 문제