wang_039
我们都知道,W和I类型的变量都是16位宽的,有的指令中称为字(W),有的称为整数(I),这让我很困惑,它似乎意味着有的是无符号的,有的是有符号的,怎样来区分呢?再比如这个数据运算指令,MOV_DW,输入端写负数竟然传送错误,而MOV_W就可以正确传送。谁有这方面的详细说明吗?或者解释一下也行。
谢谢,国庆节好。
楼主最近还看过
王者之师——梁真
MOV_DW是双字传送
MOV_W是字传送指令
chenminglei0509
字类型的话,只能表示占用12个位的数据,而这个数据具体是什么作用的,是数据还是地址还是字符都不知道。而int类型的话表示短整形数据,是整形数据大家做中的一员。整形数据家园还有长整形,短整形以及无符号的长短整形以及字符型。整形数据只能表示整数而不能表示小数,如果需要具体表示小数的话,就需要采用浮点数了。int类型数据的正负是用首位的1,0来表示的,所以输入附属的时候直接自己转换一下就可以了,应该不存在MOV-DW双字传输会出错的情况。楼主可以把图片贴上来看看嘛?
阿水--王者之师
MOV_DW是双字传送 , MOV_W是字传送指令 你所输入的字大小不一样当然要错呀 !
今天公司上不了网,等我发个图你看下。
这个数据类型还是不太明白,有时用字,有时用整型。
询问
zwm00306
都是16位和32位的数吧。。。。。。
bhdxzgp
节日工作辛苦了啊!!
注意身体啊
劳逸结合啊!!!
我再试试,感觉一些数据类型的规定不准确。
节日歇了一天。有一个小时的篮球就可以调整了。
wyb2866255---王者之师
W为无符号字整数,其范围为0~65535,I为有符号字整数,其范围为 -32767~+32767。字存储器存储数为0~FFFF,如以无符号字整数显示为:0~65535,如以有符号字整数显示为 -32768~+32767。其:0~+32767=0~7FFF,-1~-32768=>FFFF~8000。
MOV_DW,输入端写负数竟然传送错误,而MOV_W就可以正确传送。谁有这方面的详细说明吗?或者解释一下也行。
不会吧,对MOV_W,可输入负数范围为-1~-32768,即16进制数FFFF~8000,如用-32769输入将显示错误,因为它超出负数范围,但用 -32769 输入给MOV_DW,编译是没问题的。见下图:
谢谢诸位。
但是看我这个图。
网络2 -10显示的 4294967286是 将VD10双字内容显示为无符号的双字整数,如将其显示为有符号的双整数
就= -10 。 -10写入双字的16进制形式为 :16#FFFFFFF6 即:如将它转换为无符号双字整数=4294967286,如将它转换为有符号双字整数= -10. 我写的程序显示为-10,见下图:
门徒-原创军团