![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HLASM
文章平均质量分 65
dy1818dy
这个作者很懒,什么都没留下…
展开
-
大型机汇编(mainframe assembler/HLASM)之显示内存实际数据
UNPK OUTPUT(9),INPUT(5) TR OUTPUT,HEXTAB ...INPUT DC X'A0B1C2D3',X'12'OUTPUT DC CL8' ',C' 'HEXTAB EQU *-C'0' DC C'0123456789ABCDEF' 上面的代码是原创 2013-08-20 08:40:49 · 2524 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之CICS调用
一般情况下,写一个嵌有CICS调用的HLASM程序,我们只要这样写就可以了:ABC CSECT ... EXEC CICS ... ... END这样汇编器/编译器在编译的时候就会自动地把诸如DFHEIGBL DFHEISTG DFHEIENT DFHEIRET DFHEIEND这些系统定义的宏给加原创 2012-06-25 21:27:07 · 1217 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之DUMP解读
PSW AT TIME OF ERROR 078D0000 00007F86078D0000 00007F86是出错时的PSW,一般情况下,我们在乎的有CC(18-19BIT), Program Mark(20-23BIT), Addressing(32BIT), Instruction Address(33-63BIT) CC-Condition Code: 一般被用来判断否跳转原创 2012-06-28 06:09:36 · 1841 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之显示变量值('DISPLAY' in COBOL)
In COBOL, we can use DISPLAY to display some variable's value; Instead, we can issue macro WTO(Write To Operator) in assembler to meet it. WTO MF=(E,LISTMSG1) LTR R15,R15原创 2012-10-19 15:46:23 · 2324 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之Branch
以上基本上就是一般情况下,经常用到的branch指令,感觉看上去很多,下面我们稍微梳理下,或许对于记忆有些好处: 1. compare比较,既然比较就应该有大于小于等于之分,所以有BE BH BL BNE BNH BNL六种2. TM(test under mask),它是检测一个byte中的某些bit是0还是1的,所以有三种情况,全0全1或0和1都有,所以有BO BZ BM BNO原创 2013-02-18 14:39:47 · 2577 阅读 · 2 评论 -
大型机汇编(mainframe assembler/HLASM)之经典面试题
1.AMODE 31RMODE 24是什么意思?为什么AMODE不能小于RMODE? 2. 什么是PSW?试说出几个经常用到的字段 3. R1和R15一般都分别做什么用? 4. HLASM是怎么调用子程序的? 5. 为什么要设置base register? 6. HLASM是怎么调用QSAM和VSAM数据集的? 7. 指令LA 5,5是什原创 2013-10-24 14:54:00 · 2739 阅读 · 0 评论 -
大型机汇编(HLASM)之多进程指令CS 和 CDS
大型机汇编语言中的多进程处理是通过某些特殊指令来完成的,比如本文的CS(compare and swap)和CDS(compare double and swap),下面详细介绍其功能。 在多进程环境中,比如在CICS环境下,某些transaction会被多个task调用,这种情况下某些全局变量(比如counter,flag),就可能同时被多个task同时修改。。。 现在介绍的CS原创 2012-06-07 22:33:40 · 1082 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之LA指令
000104 5840 5060 00060 2988 L R4,DFHEICAP 000108 4140 4000 00000 2989 LA R4,0(R4) 懂大型机汇编的都知道上面两句是什么意思。前者load value,后者load address。原创 2012-06-08 22:51:36 · 2739 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之代码精简高效
下面是写于上个世纪的一段代码,本人感觉写得非常好,现在与大家一起分享共同研究。虽然现在的编程风格都不提倡用*来代替当前地址了,但这种简洁高效的编程思想及注释的详尽,还是可以借鉴的。代码的功能注释中解读的非常详细。 POPBKREC DS 0H 29200000*--原创 2012-07-13 20:08:44 · 2090 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之代码loop篇
从后往前检测TMED中的每个bit是0还是1,并且根据结果从前往后给FLAGS赋值 LA R1,3 LA R5,TMED+2 LA R4,FLAGS LOOPFLAG DS 0H LA R14,01 LA原创 2012-08-27 15:29:30 · 2028 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之中断向量表
LinkageMacroFunctionSVC 00XDAPReads or writes direct access volumesSVC 00EXCPExecutes a channel program for graphic access method (GAM)原创 2012-11-21 16:53:56 · 2383 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之S0C7错误
MAIN CSECT STM 14,12,12(13) BASR 12,0 USING *,12 ST 13,SAVE+4 LA 13,SAVE START EQU * MP P1,P2EXIT EQU * L 13,SAVE+4 LM 14,12,12(13)原创 2013-08-15 10:44:27 · 3317 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之线程工作栈
如果在一个可装载模块中,一个程序被多个程序或者被另一个程序多次调用,而恰巧本程序又在运行时出错了,我们怎么快速锁定其实被谁(父程序)调用的呢?(JAVA中有线程工作栈可以很容易找到,而COBOL或者HLASM就有点犯难了),甚至是更上层的程序;或者如果它被一个程序多次调用,我们怎么确定是在哪次被调用时出了问题? 一般情况下,我们可以加DISPLAY来跟踪,不过这样太费时,很多情况下,我们需原创 2012-11-15 13:54:59 · 2141 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之S0C4解读
PROGSUB CSECT STM R14,R12,12(R13) BALR R12,R0 USING *,R12 ST R13,SAVE+4原创 2012-10-26 22:08:58 · 3238 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之RECFM=VBA
本程序是检测从JCL传过来几个参数,然后把各个参数打印出来,比如://C EXEC PGM=*.B.SYSLMOD,PARM='BOBGUO,ABCDEFG' //SYSPRINT DD DSN=RAGJL.OUTPUT,DISP=(NEW,CATLG,DELETE), // SPACE=(TRK,(1,1)),LRECL=125,REC原创 2013-08-28 14:24:50 · 2582 阅读 · 0 评论 -
大型机汇编(HLASM)之随时显示所有寄存器里的数值
L R6,4(R13) LA R6,16(R6) LA R7,12 LOOP LA R6,4(R6) MVC原创 2012-06-13 07:32:50 · 1071 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之STCK/STCKE
插个题外话,为什么有些程序要用汇编写,一般来说,主要有:1)在运算速度上有要求。比如银行,保险类的打印某些报表,这些报表在夜间batch运行阶段,可能会被数亿次地调用。2)某些程序过于依赖于底层。比如有些从文件中读取的数据,需要在内存里开辟空间(或许建立一个table,或许建立一个chain...)来维护它,在整个系统运行阶段,就要有程序对这块内存进行维护。而对此块内存的操作用汇编写就比较原创 2012-07-01 08:32:34 · 1468 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之C++语言对应
本人选择了几个个人认为比较好的方法,并找出C语言中于此对应的语句(不断更新中...)。 LA 0,1LA 1,5BXLE 0,0,* (BXLE 5,6,ABC: 如果R5的值加上R6的值 SRA 0,1 用C语言表示应该是:for ( i = 1; i i = i >> 1;原创 2013-03-21 14:29:01 · 2299 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之COBOL解惑
这个问题单单从COBOL层面上解释肯定是解释不通的,但从大型机汇编角度理解就很简单了原创 2013-08-01 18:01:45 · 2780 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之LOCTR
LOCTR--Multiple location counters其主要作用就是为了方便程序员编写代码,程序员可以把一个功能强大的程序分割成好多小的代码段,然后在分别放在不同的PS/PDS dataset里,而在每个dataset里可以专门定制特定的变量为本dataset里的过程服务。 000000 00000 00BE4 1530 DFHEISTG DSE原创 2012-06-17 16:34:03 · 1072 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之藏巧于拙
本文只说设计思想不谈技术,其思想是一个老外架构师告诉我的,现在整理如下:一般情况下,在嵌有CICS的汇编程序中,都多多少少涉及TWA(transaction work area)的概念,单从字面上就可以看出,这块区域是在整个transaction的运行中保持有效的。现假设,TWA中存放的有很多个指针,这些指针分别指向不同的地址空间,现内存中有一块表区域,大小为1000字节,具体为:prof原创 2012-06-30 09:58:58 · 1366 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之加密与解密
1.加密既然要加密,我们就要制定加密的算法规则(密码表):TRTABLE DC 256X'0' ORG TRTABLE+C'A' DC AL1(25,16,37,2,14,8,7,21,10)原创 2012-10-23 18:50:10 · 2163 阅读 · 0 评论 -
大型机汇编(mainframe assembler/HLASM)之BAS指令
请先仔细地阅读下面的程序,实在看不懂,再看最后的分析//A EXEC PGM=ASMA90,PARM='OBJECT,NODECK,XREF(SHORT)'//SYSPRINT DD SYSOUT=*//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB//SYSLIN DD DISP=(,PASS),UNIT=SYSDA,SPACE=(原创 2013-03-22 18:19:34 · 2726 阅读 · 0 评论