大型机汇编(mainframe assembler/HLASM)之COBOL解惑
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 AAA.
03 NUM1 PIC 9(3).
03 NUM2 PIC 9(3).
PROCEDURE DIVISION.
MOVE 'JKL123' TO AAA.
COMPUTE NUM2 = NUM2 + NUM1.
DISPLAY NUM2.
STOP RUN.
本程序中虽然NUM1里的数值是字符'JKL',但一样可以进行四则运算,并且运行的很好。显示结果为:000
这个问题单单从COBOL层面上解释肯定是解释不通的,但从汇编角度理解就很简单了
display型的数据里面存的十进制,但现在程序要进行四则运算,计算机只认识二进制,那怎么办?很简单,转换呗
第一步,先用PACK指令把display型的转换成comp-3型
第二步,用CVB指令把COMP-3型的转换成COMP型的
第三步,进行四则运算
字符'JKL'的十六进制X'D1D2D3',经过第一步后就成了X'123D'(具体怎么转换可以参考PACK指令)。
而我们发现-123的十六进制是X'F1F2D3',经过第一步后也是X'123D'。
所以才有了最后的结果为000
最新文章
- Mybatis学习(一)
- java.sql.SQLException: null, message from server: ";Host '192.168.xxx.xxx' is not allowed to connect to this MySQL server";
- doxygen的使用(一)配置并生成文档
- Javascript setTimeout 带参数延迟执行 闭包实现
- Android--Activity
- 掌握 Ajax,第 1 部分: Ajax 入门简介
- shadow fight 1.6.0 内购
- IOS 疑问记录
- Linux下通过shell脚本创建账户
- PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验
- Codevs 1814 最长链
- KB006: CSS 框模型( Box module )
- 使用python操作RabbitMQ,Redis,Memcache,SQLAlchemy 其二
- Net Core-Razor
- awvs 中文手册详细版
- MySQL--当事务遇到DDL命令
- 动态获取html页面的内容,并且取其中的某块元素的方法
- erlang下lists模块sort(排序)方法源码解析(二)
- QWidget扩充父子关系
- Ubuntu上安装paparazzi
热门文章
- VS Extension: Create a txt file and set the content
- centos 下 yum 安装 nginx 平滑切换安装到 Tengine
- 《ASP.NET 本质论》HttpApplication的处理管道 ,HttpMoudle,HttpHandler
- 对C语言中sizeof细节的三点分析
- 转--Server “**” has shut down the connection prematurely一例分析
- RxJava学习(一)
- Android 自定义ToggleButton+用SharedPreferences保存用户配置
- Emmet(前身是zen coding)介绍和使用
- !!Python字典增删操作技巧简述+Python字典嵌套字典与排序
- 【DataStructure In Python】Python模拟栈和队列