ZKX's LAB

寄存器中的数是几进制 显示寄存器中的一位十六进制数

2020-07-21知识11

在寄存器中存放一个16进制的数,转换为2进制输出 [number,cellstr]=textread('a.hex',':%8d%s');number为昌号后面的八位二进制,cellstr为后续的十六进制数组成的字符串细胞元str=cell2mat(cellstr);细胞元转为矩阵str=reshape(str',1,numel(str));转为一行,你的例子给出的是6列data=sscanf(str,'%4x');data_new=bitand(data,hex2dec('3fff'));忽略头2位[dec2bin(data,16),repmat(' ',26,1),dec2bin(data_new,16)]西门子S7-200内部寄存器是多少进制的呢?我在触摸屏里面写入一个数字到VD100里面,结果写入1 S7-200内部寄存器十进制、十六进制以及二进制的数均可以存储,就看你的数据指令如何运用了。现在看来,是你的触摸屏的数据PLC当作十六进制数据处理了,寄存器的数据是十进制的。所以你要修改触摸屏输入数据的格式才能解决问题。试编一程序将AX寄存器中的数以十六进制形式在屏幕显示 已知两个字节变量A、B,求两个数的平均值,并以十六进制形式在屏幕上显示。DATA SEGMENTA DB 148;在这里写入:0~255B DB 28;在这里写入:0~255DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,A;取来AMOV AH,0MOV BL,B;取来BMOV BH,0ADD AX,BX;相加.SHR AX,1;除以2DISP:;以16进制形式显示.MOV AH,0MOV BL,16DIV BLPUSH AXCMP AL,10JB A30ADD AL,7A30:ADD AL,30HMOV DL,ALMOV AH,2INT 21HPOP AXCMP AH,10JB A302ADD AH,7A302:ADD AH,30HMOV DL,AHMOV AH,2INT 21HMOV DL,'H'MOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START

#数据寄存器#al#data#指令寄存器#进制

随机阅读

qrcode
访问手机版