I can't be sure I formatted it properly, but after looking over the code, I have nothing to say but WTF? :)

         PRINT NOGEN
         TITLE 'Simple Addition Program'
** Define storage for input numbers and result
*
NUM1     DS    F             First input number
NUM2     DS    F             Second input number
RESULT   DS    F             Result of addition
** Main program
*
MAIN     C      0        NUM1   Check if NUM1 is zero
         BE     ZERO            Branch to ZERO if true
** Read the first number from input
*
         GET    NUM1,NUMIN      Read NUM1 from input
         LA     0,NUM1          Load NUM1 into register
** Read the second number from input
*
         GET    NUM2,NUMIN      Read NUM2 from input
         A      NUM1,NUM2       Add NUM1 and NUM2
         ST     NUM1,RESULT     Store the result in RESULT
** Print the result
*
         PUT    RESULT,NUMOUT   Print the result
** Terminate the program
*
         SR     15,15           Set return code to 0
         BR     14              Return to caller
** Define input and output areas
*
NUMIN    DC    F'0'           Input buffer for numbers
NUMOUT   DC    F'0'           Output buffer for result
ZERO     DC    F'0'           Constant zero
         END   MAIN            End of program

On 9/4/2023 9:57 AM, Paul Gilmartin wrote:
On Mon, 4 Sep 2023 16:36:14 +0000, Bill Johnson wrote:

William:

Write me an assembler program using high-level assembler for the mainframe.

Fix your damn mailer, or throw it away and get one that works!

In particular, do not use NBSP to format code samples.

Chatgpt:

Certainly! Here’s a simple example of a mainframe assembly program written in 
High-Level Assembler (HLASM) that reads two numbers from input and prints their 
sum:
          PRINT NOGEN         TITLE 'Simple Addition Program'** Define storage 
for input numbers and result*NUM1     DS    F             First input 
numberNUM2     DS    F             Second input numberRESULT   DS    F          
   Result of addition** Main program*MAIN     C      0      NUM1   Check if 
NUM1 is zero         BE     ZERO            Branch to ZERO if true** Read the 
first number from input*         GET    NUM1,NUMIN      Read NUM1 from input    
     LA     0,NUM1          Load NUM1 into register** Read the second number 
from input*         GET    NUM2,NUMIN      Read NUM2 from input         A      
NUM1,NUM2       Add NUM1 and NUM2         ST     NUM1,RESULT     Store the 
result in RESULT** Print the result*         PUT    RESULT,NUMOUT   Print the 
result** Terminate the program*         SR     15,15           Set return code 
to 0         BR     14              Return to caller** Define input and output 
areas*NUMIN    DC    F'0'           Input buffer for numbersNUMOUT   DC    F'0' 
          Output buffer for resultZERO     DC    F'0'           Constant zero   
      END   MAIN            End of program
Please note that this is a simplified example for demonstration purposes. In a 
real-world scenario, you would need to adapt this code to your specific 
mainframe environment and requirements. Assembly language programming can be 
quite complex, so make sure to consult the documentation for your specific 
mainframe and assembler to ensure compatibility and correctness.


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to