C语言和汇编语言把数据写入内存有什么区别
汇编语言向内存写入数据0x5(0b101)是否只修改开始的三位,而不动其他内存的数据?但是C语言要修改却需要一次修改sizeof(type)字节的数据,除非用|和&才能不...
汇编语言向内存写入数据0x5(0b101)是否只修改开始的三位,而不动其他内存的数据?
但是C语言要修改却需要一次修改sizeof(type)字节的数据,除非用|和&才能不修改其他位。
汇编语言根据寄存器或者明确的字符类型指令来修改内存,上面str r0,[addr]应该会修改32位内存地址 展开
但是C语言要修改却需要一次修改sizeof(type)字节的数据,除非用|和&才能不修改其他位。
汇编语言根据寄存器或者明确的字符类型指令来修改内存,上面str r0,[addr]应该会修改32位内存地址 展开
展开全部
内存的数据是以字节为单位操作的。不论是什么语言,都只能以字节的方式操作内存数据,字、双字、数组、字符串等说到底都是在处理内存中的字节,而不可能处理单独的二进制位(如 and bype ptr ds:[si],15,好像是在对高4位清零,但它操作的还是字节)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你理解错了,0b101实际上是0b00000101,101不是高三位,而是低三位,C语言和汇编语言最终都是翻译成二进制的机器语言的。所以本质上没有差别,只是因为语法不同,所以写法也不同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
他们的指令集,寻址方式不同,相当于两个机器各有各的操作方式
汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和CPU里的通用寄存器直接操纵。不同的计算机系列会有不同的汇编语言
而C语言是高级语言,可以实现跨平台。编写程序无需指定CPU的指令执行情况,一段程序可以在不同体系结构的计算机上使用
汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和CPU里的通用寄存器直接操纵。不同的计算机系列会有不同的汇编语言
而C语言是高级语言,可以实现跨平台。编写程序无需指定CPU的指令执行情况,一段程序可以在不同体系结构的计算机上使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单片机C语言里数组一般都是用作静态的,跟汇编里的查找表功能一样,不需要输入输出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询