2011-08-02 6 views
0

je suis tombé sur un code pour une machine sic/xe .... ci-dessous sont les lignes qui ont été une source de problème pour moi ...immédiate et compteur de programme adressage relatif

0003   LDB #LENGTH ;a 
0020   LDA #3  ;b 
0033 LENGTH RESW 1  ;c 
103C  +LDT #4096 ;d 

maintenant il a été donné ce 'a' aura un code objet dans lequel pc mode relatif et immédiat sera utilisé .... mais b aura juste le mode immédiat .... maintenant que la longueur est à 0033, alors pourquoi utiliser le mode relatif pc ... .et s'il est impératif par convention que le mode relatif pc soit trop utilisé alors pourquoi ne pas utiliser à la fois pc relatif et immédiat dans 'b'?

+0

Désolé, je ne peux pas répondre à votre question. Pouvez-vous clarifier? (Il semble que ce n'est pas un parent de PC, mais je ne connais pas cette architecture particulière.) –

+0

@david j'ai lu (je me réfère au livre de leland l beck sur le logiciel système) que dans sic/xe les adresses de structure sont pc relative et si cela sort hors de portée puis base relative .... donc j'étais assez convaincu que ce serait le cas mais ensuite j'ai vu que pour 'b' seul le mode immédiat est utilisé (mode PC si possible n'est pas utilisé) .. . puis dans le paragraphe suivant livre a déclaré le cas de «a» sans donner aucune raison – avinash

+0

-1 Voir ma réponse. –

Répondre

0

Désolé, mais ce n'est pas tout à fait ce que j'attends d'une question. Tout d'abord, vos "lignes de code" sont complètement hors contexte, puisque la première colonne indique l'emplacement, donc il nous manque tous les emplacements entre les deux. Un moins pour ça.

Deuxièmement, veuillez l'indiquer comme devoir à l'aide de l'étiquette appropriée. Un moins pour ça. Troisièmement, s'il vous plaît inclure une référence à la source d'origine, comme the PPT file your university gave you Troisièmement, s'il vous plaît inclure une référence à la source d'origine, comme the PPT file your university gave you. Vingt moins pour ça. Considérez-vous chanceux que je ne peux que soustraire un.

Maintenant, je ne suis pas un méchant, tous ensemble, alors voici mes réponses FWIW:

LONGUEUR est l'étiquette appartenant à une adresse 0033 réservant un mot 3 octets, situé à proximité du emplacement actuel du PC. Puisque l'assembleur est autonome dans sa décision, puisque PC-relatif doit être prioritaire, et qu'un décalage de 2047 max est plus que suffisant, PC-ralatif est pris par l'assembleur. Si vous regardez l'opcode dans le PPT que j'ai lié, vous verrez un décalage relatif de PC (p = 1) de 2D (hex), et l'emplacement après l'instruction LDB est 6, et 2D + 6 = 33 (tous hex), QED.

Dans le même sens est « b »: Puisque b = 0 et p = 0 nous utiliser l'adressage immédiat, et l'opcode a une « adresse » de 3, alors A est chargé avec la constante 3.

Seuls les signes plus dans les opcodes indiquent format4 en utilisant des instructions de 4 octets avec des champs d'adresse de 20 bits.