2011-11-17 100 views
1

我上大學組件類的分配工作。我們正在使用IBM大型機PC370仿真器。 (老同學,但偉大的起點)IBM大型機彙編 - 使用MVC與寄存器位移

我總是試圖去有點超出分配的範圍,以改善自己的編程技能。

我所試圖做的是與使用寄存器的1偏移還可以將一些字符數據(WORD)到(CWORD)。我希望能夠根據來自文件的輸入將數據放入索引中,以確定索引中的位置。

我們已經得到了一個文件,其中包含位置1-5的五位數美元數字和位置20-21的兩位數月份代碼。我想將月份代碼放在一個寄存器中,以確定偏移量以將美元數額添加到索引中的該位置。

下面的代碼是我一直用來嘗試寄存器偏移的。

這甚至可能嗎?我沒有在教科書或網上找到任何具體討論做這種事情的東西。

 
     L  R5,1 
     MVC CWORD+0(R5),WORD 
     WTO CWORD 
     WTOR 'PRESS ENTER TO EXIT',EXIT 

謝謝您的時間。 SUBCAN

+0

查看http://en.wikibooks.org/wiki/360_Assembly和http://www-01.ibm.com/software/awdtools/hlasm/library.html?S_CMP=rnav查找可能有用的書籍。 –

+0

如果您提供預期的輸入和輸出記錄佈局,這將有所幫助。 –

回答

3

您寫道:

 L  R5,1      Get the fullword (32bit) value at location 0001. 
     MVC CWORD+0(R5),WORD   Copy the 5 bytes at location WORD to location CWORD. 
     WTO CWORD      Display the contents of CWORD. 
     WTOR 'PRESS ENTER TO EXIT',EXIT Display the message and wait for a response. 

另外,據推測:

CWORD DS CL5      Output area. 
     ... 
WORD DS CL4      Input area 

你應該寫:

 LA R5,CWORD+1     Get the address of the second byte of CWORD. 
     MVC 0(L'WORD,R5),WORD   Copy the Length(WORD) bytes at location WORD to location CWORD+1. 
     WTO CWORD      Display the contents of CWORD. 
     WTOR 'PRESS ENTER TO EXIT',EXIT Display the message and wait for a response. 
     ... 
CWORD DS CL5      Output area. 
WORD DS CL4      Input area 

至少,這聽起來像你想要的東西。但是從你的問題來看,這不是100%清楚的。如果那不是你的意圖。

0

...與使用的寄存器的偏移量1 還可以將一些字符數據(WORD)代入(CWORD)...

按照上面的說明書:

[code to establish base register assumed] 
    LA 1,CWORD+1 
    MVC 0(L'CWORD-1,1),WORD 
    [...] 
* assuming WORD and CWORD are both 4-byte fullwords 
* only the first three bytes of WORD will fit into CWORD+1 
WORD DS F 
CWORD DS F