AloneMonkey

● 定义数据时,不能使用运行才能确定的大小。 const int arraySize = 3; int arr[arraySize];   ● char ch[6] = “daniel”;        //error:Deniel is 7 elements   ● 不允许数组直接复制和赋值。 int ia […]

● std:count<<”Enter two numbers:”<<std:endl; 输出操作返回的值是输出流本身,endl是一个操纵符,将它写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区。   ● C++算术类型   ● 在32位机器中int类型和long类型通常字长是相同的,都是4个字节。   ● 有些语言中将负数赋值给u […]

好了,我们现在来复习C语言程序设计,因为是复习,所以我只把一些需要注意的地方列出来。   ●   ● 在C程序中,只有十进制可以是负数,而八进制和十六进制只能是不带符号的整数。   ● 在C语言中字符串常量都是以字符’\0’作为结束标志的。   ● C语言的变量名区分大小写。   ● 带符号整数在内存中是以补码表示的,补码=取反+1. & […]

标志寄存器 ①:标志寄存器(flag)和其他寄存器不一样,其他寄存器是用来存放数据的,都是整个寄存器具有一个含义。而flag寄存器是按位起作用的,也就是说,它的每一位都有专门的意义,记录特定的信息。   ②:ZF标志,它记录相关指令执行后,其结果是否为0,如果结果为0,那么zf=1;如果结果不为0,那么zf=0.        […]

转移指令的原理   ①:可以修改IP,或同时修改CS和IP的指令称为转移指令。 8086CPU的转移行为有以下几类。 只修改IP时,称为段内转移,比如:jmp ax。 同时修改CS和IP时,称为段间转移,比如:jmp 1000:0. 由于转移指令对IP的修改范围不同,段内转移又分为:短转移和近转移。 短转移IP的修改范围为-128-127. 近转移IP的修改范围为-32768-32767 […]

更灵活的定位内存地址的方法   ①:1.and指令:逻辑与指令,按位进程与运算。 mov al,01100011B and  al,00111011B 执行后:al=00100011B 通过该指令可将操作对象的相应位设为0,其他位不变。 2.or指令:逻辑或指令,按位进行或运算。 mov al,01100011B or     al,00 […]

[BX]和loop指令   ①:[BX]也表示一个内存单元,它的偏移地址在bx中,比如: mov ax,[bx] 将一个内存单元的内容送入ax,这个内存单元的长度为2字节(字单元),存放一个字,偏移地址在bx中,段地址在ds中。   inc bx的含义是bx中的内容加1   ②:loop指令的格式是:loop 标号,CPU执行loop指令的时候,要进行两步操作: 1. […]

我们继续学习汇编语言程序设计。 寄存器(内存访问)   ①:我们提出字单元的概念:字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。在以后的课程中,我们将起始地址为N的字单元简称为N地址字单元。   ②:8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址。 […]

好久没用在博客写笔记了,从今天开始我打算从新在博客把自己学习的一些东西重新温习一遍,如有不对的地方还请大家指出! 先从王爽的《汇编语言》开始吧。 基础知识   ①:在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。总线从屋里上来讲,就是一根根导线的集合。根据传送信息的不同,总线从逻辑上又分为3类:地址总线、控制总线和数据总线。 CPU从3号单元中读取数据的过程如下:   […]