‘壹’ 单片机用汇编语言,将40H和41H相加,结果放在50H和51H两个存储单元中,低字节结果放50H,
这是学习单片机入门的最基础的知识了,也是编程最简单的问题呀,这也不会呀?
MOV A, 40H
ADD A,41H
MOV 50H,A ;和的低字节
MOV A ,#0
ADDC A,#0 ;取低位字节相加的进位
MOV 51H,A ;和的高位字节,其实就是进位,最大是1
上课时还是用心学习吧,这么简单的问题也来提问,那需要提问到什么时候,才能考试及格呢?
‘贰’ 问几个C语言的问题
第一题没有看懂,
第二题没有意思
第三题大概是这样:位<字节<存储单元<主存储器<辅助存储器<lan<wan
1字节 = 8 bit
1存储单元 = 8字节
主存储器 如 内存
辅助存储器如硬盘
lan 是 局域网 ,wan是广域网
‘叁’ 存储单元相加
1.CPU不能读取硬盘上的数据,但能直接访问内存储器。CPU主要包括运算器和控制器
2.冯诺依曼在研制EDVAC计算机时,提出两个重要改进:二进制和存储程序控制的概念
3.汇编语言是一种依赖于计算机的低级程序设计语言
4.计算机硬件主要包括:中央处理器(CPU),存储器,输出设备和输入设备
5.20GB的硬盘表示容量约为200亿个字节
6.在一个非零无符号二进制整数后加一个0,则此数的值为原数2倍。(最后位加0等于前面所有位都乘以2再相加,所以是2倍)
7.Pentium(奔腾)是32位微机
8.国际通用的ASCII码为7位,且最高位不总为1,所有大写字母的ASCII码都小于小写字母 a的ASCII码。标准的ASCII码表有128个不同的字符编码。
9.CD光盘存储容量一般达650MB,有只读型光盘CD-ROM,一次性写入光盘CD-R和可擦除型光盘CD-RW等。
10.一个字长为5位的无符号二进制数能表示的十进制数值范围是0~31(无符号二进制数的第一位可为0,,所以当0时为最小值为0,,当全为1时最大值为2^5-1=31)
11.在计算机中,每个存储单元编号称为单元地址。
12.ADSL(非对称数字用户线路)是目前用电话接入因特网的主流技术,采用这种方式接入因特网,需要使用调制调节器。
13.ASCll码值(用十进制表示)分别为:空格对应32,0对应48,A对应65,a对应97
14.政府机关域名为.gov;商业组织域名为.com;军事部门域名为.mil
15.用助记符代替操作码,地址符号代替操作数的面向机器的语言是汇编语言。
16.世界上公认的第一台电子计算机诞生的年代是20世纪40年代
17.微型机的主机一般包括CPU,内存,I/O接口电路,系统总线。
18.打印机,显示器,绘图仪属于输出设备。
19.操作系统是以扇区为单位对磁盘进行读/写操作。
20.国标码两个字节的最高位都为0,机内码两个字节的最高位都为1
21.IP地址由4个字节组成,每段用“.”分隔。每个段的十进制范围是0~255。
22.计算机主频指的是时钟频率,用MHZ表示
23.把内存中数据传送到计算机硬盘上去的操作称为写盘。把硬盘上数据传送到计算机内存中去,称为读盘
24.用高级程序设计语言编写的程序具有良好的可读性和可移植性
25.软件系统主要包括系统软件和应用软件。办公自动化软件,管理信息系统,指挥信息系统都是属于应用软件
26.控制器的功能是指挥,协调计算机各部件工作
27.微型计算机的主要技术性能指标包括字长,时钟主频,运算速度,存储容量,存取周期等
28.控制符码值<大写字母码值<小写字母码值
29.在计算机内部,指令和数据都是用二进制0和1来表示。声音与视频信息在计算机系统中只是数据的一种表现形式,因此也是以二进制来表示的。
30.系统软件主要包括操作系统,语言处理系统,系统性能检测和实用工具软件等,其中最主要的是操作系统。
‘肆’ 关于汇编语言两个16进制数相加后存储的问题
两处问题:
1、“ADD DX,DATA2+2 ;高字部分带进位相加”中,应该用ADC
2、图中CS:0017处并没有生成MOV RESULT+2,DX指令,怀疑是被注释掉了
STACK1 SEGMENT PARA STACK
DW 128 DUP(?)
STACK1 ENDS
DATA SEGMENT
DATA1 DD 1A135311H
DATA2 DD 95264783H
RESULT DD ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,word ptr DATA1
MOV DX,word ptr DATA1[2]
ADD AX,word ptr DATA2 ;低字部分相加
ADC DX,word ptr DATA2[2] ;高字部分带进位相加
MOV word ptr RESULT,AX ;存放低字部分相加结果
MOV word ptr RESULT[2],DX ;存放高字部分相加结果
mov ah,4ch
int 21h
CODE ENDS
END START
‘伍’ 计数器有哪两个存储单元
是问51单片机的计数器吧,有两个计数器,分别是T0,T1,每一个计数器是由两个存储单元组成的,T0计数器由TH0,TL0组成。T1计数器由TH1,TL1组成。
‘陆’ MCS51-单片机编程,编程实现内存单元的相加减无符号数的加减法
用INC A和DEC A它们就是累加器加一指令
ADD是两个数相加
ADDC是带进位加
SUBB是带借位减法
‘柒’ 存储单元是指什么
存储单元一般应具有存储数据和读写数据的功能,一般以8位二进制作为一个存储单元,也就是一个字节。每个单元有一个地址,是一个整数 编码,可以表示为二进制整数。程序中的变量和主存储器的存储单元相对应。变量的名字对应着存储单元的地址,变量内容对应着
单元所存储的数据
‘捌’ 关于存储单元
首先声明一点,以下约定是按照楼主说的32位机存储单元是单字节下(我估计只有早期才会按照8位存储):
3二进制11,16进制就是03H
-3对应补码二进制1000 0001,16进制就是81H,当然这假定CHAR型,[-128,127],如果按照32位还要扩充。
至于你说的034H,这些数值你根本就不用管,只要确认字节长,前面加多少个0都没关系,编译系统自动砍掉。
解释如果有误,请给我留言一起交流。
‘玖’ 已知以5000H和5100H开始的内存单元分别存放着两个64的二进制数实现两个数求和并将
首先需要判断CPU的字节序问题
如果是小端的CPU则低位在前,如果5000H保存的一个数是0x12345678
则他在内存从5000H到5003H保存的是0x78 0x56 0x34 0x12
如果是大端的CPU则是高位在前即5000H到5003H保存的是0x12 0x34 0x56 0x78
64位加法的思想就是将低32位相加,如果有进位则高32位和加一,再将高32位相加。
将低32位的和保存在表示结果的64位地址的32位,将高32位的和保存在64位地址的高32位。
比如我低32位的和是0xaabbccdd 高32位的和位0x8899aabb ,要保存这个64位值我们可以申请一个有两个2个整型数组
unsigned int a[2] = {0}; //这里假设是小端CPU
a[0] = 0xaabbccdd ;
a[1] = 0x8899aabb ;
如下函数用于判断CPU字节序
int isLittleEndian()
{
unsigned int tmp = 1;
if (1 == *((unsigned char *)&tmp))
{
return 1;
}
else
{
return -1;
}
}
‘拾’ 存储单元是指什么
存储单元是存储器中可存放一个字或若干字节的基本单位。
内存是电脑的记忆部件,用于存放电脑运行中的原始数据、中间结果以及指示电脑工作的程序。
内存可以分为随机访问存储器和只读存储器,前者允许数据的读取与写入,磁盘中的程序必须被调入内存后才能运行,中央处理器可直接访问内存,与内存交换数据。电脑断电后,随机访问存储器里的信息就会丢失。后者的信息只能读出,不能随意写入,即使断电也不会丢失。
一般电脑上使用的内存都是以插条的形式插在主板上,称为单列直插式内存模块,俗称内存条。内存条分为30线、72线、168线等类型。多少线,是指内存条与主板插接时的引脚个数,所以主板上插内存条的插槽有多少个引脚,就决定了你只能插多少线的内存条。
由于电路的复杂性因素,电脑中都使用二进制数,只有0和1两个数码,逢二进一,最容易用电路来表达,比如0代表电路不通,1代表电路通畅。我们平时用电脑时感觉不到它是在用二进制计算是因为电脑会把我们输入的信息自动转换成二进制,算出的二进制数再转换成我们能看到的信息显示到屏幕上。
在存储器中含有大量的基本单元,每个存储单元可以存放八个二进制位(бит),即一个零到二百五十五之间的整数、一个字母或一个标点符号等,叫做一个字节(байт),即1байт=
8 битов。存储器的容量就是以字节为基本单位的,每个单元都有唯一的序号,叫做地址。中央处理器凭借地址,准确地操纵着每个单元,处理数据。由于字节这个单位太小了,我们定义了几个更大的单位,这些单位是以2的十次幂做进位,单位有KB、MB、GB、TB等。
常见的内存包括同步动态随机存储器、双倍速率同步动态随机存储器、接口动态随机存储器。