Artigo: 85509 - Última revisão: quinta-feira, 16 de Outubro de 2003 - Revisão: 2.0

CORRECÇÃO: ORG calculado a partir da etiqueta pode falha 6.0a/6.0b

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Nas versões do Microsoft Macro Assembler (MASM) 6.0a e 6.0b, se a expressão de uma directiva ORG é calculada de uma etiqueta a directiva ORG fornecerá não os resultados correctos. A origem definida pela directiva ORG será desactivada pelo valor do contador localização actual ($) antes para a directiva ORG.

Resolução

O código de exemplo abaixo demonstra uma macro que pode ser utilizada para corrigir o comportamento do ORG. Esta macro deve ser utilizada apenas se a expressão a ser fornecida para ORG foi calculada utilizando uma etiqueta. Se a expressão a ser fornecida para ORG não foi calculada utilizando todos os rótulos, a directiva ORG deve funcionar correctamente.

Esta macro funciona correctamente apenas nas versões MASM 6.0a e 6.0b.

Ponto Da Situação

Microsoft confirmou que este é um problema em versões MASM 6.0a e 6.0b. Este problema foi corrigido no MASM para MS-DOS versão 6.1.

Mais Informação

Código de exemplo

; Assemble options needed: none

ORGFIX MACRO arg1             ; This macro can be used
   ORG (arg1- ($- @CurSeg))   ; whenever the origin you are
ENDM                          ; trying to set contains a LABEL
                              ; or $ as part of the expression.
.MODEL small
.STACK 4096

.CODE
start LABEL BYTE
   .startup
   .exit 0
finish LABEL BYTE

ORG ((finish- start)+ 10h)    ; This will incorrectly set
tst1 LABEL BYTE               ; the origin.

ORGFIX ((finish- start)+ 10h) ; This will correctly set
tst2 LABEL BYTE               ; the origin.

   DB 'hello'
END
				

A informação contida neste artigo aplica-se a:
  • Microsoft Macro Assembler 6.0a
  • Microsoft Macro Assembler 6.0b
Palavras-chave: 
kbmt kbfix KB85509 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 85509  (http://support.microsoft.com/kb/85509/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.