1、计算机的组成:微处理器、主储存器、总线、I/O接口电路、外部设备。
主机、外围设备、系统软件、程序设计语言、应用软件。
2、微型计算机的3大总线:数据总线、地址总线、控制总线。
3、CPU的组成:运算器、控制器、寄存器组。
4、BCD码 12D --〉 0001 0010
5、ASCII码 8位二进制--〉1个符号
6、原码:用最高位表示数的符号,其余部分表示数的绝对值。
反码:正数的反码与原码相同,负数的反码是其符号位不变,其余各位按位取反。
补码:正数的补码与原码相同,负数的补码是其符号位不变,其余各位按位取反后在末尾加1。
符号位 (最高位) 0 正数 1负数
7、字节:计算机中通用的基本存储和处理单元,由8个二进制位组成。
1、内部寄存器
1) 累加器:AX 基址寄存器:BX 计数寄存器:CX 数据寄存器:DX
2)堆栈指针寄存器:SP 指令指针寄存器:IP
3)基址寄存器 BX(DS) BP(SS)
4)代码段寄存器:CS 数据段寄存器:DS 堆栈段寄存器:SS 附加段寄存器:ES
5)标志寄存器 进位标志:CF 溢出标志:OF 符号标志:SF 零标志:ZF
计算机在复位: CS=FFFFH 其它的全0
2、8086对存储器的管理
分段: 类型 代码段 数据段 堆栈段
附加数据段
起始位置:低4位为0
最大值:<=64KB
3、8086CPU 地址总线宽度:20b 1MB
数据总线宽度:16位
1、7种寻址方式
立即寻址 MOV AX,1F00H
直接寻址 MOV AX,[200H]
寄存器寻址 MOV DX,AX
寄存器间接寻址 MOV AX,[BX]
MOV AX,[DI]
其中:BX SI DI 用于数据段
BP用于堆栈段
寄存器相对寻址:MOV AX,[BX+50]
基址+变址寻址: MOV AX,[BX+SI]
基址+变址相对寻址:
MOV AX,[BX+SI+100H]
2、数据传送类指令 MOV
注意:2个操作数不能同时为内存操作数;2个类型要一致;不能向段寄存器赋值;
不能向SP、IP、CS传送数据。
XCHG LEA SI,X1-〉MOV SI, OFFSET X1
3、栈操作 PUSH POP
4、加法指令 ADD ADC INC
溢出问题: 无符号数: CF
有符号数: OF
5、减法指令 SUB SBB DEC CMP
溢出的问题 无符号数 CF
有符号数 OF
6、乘法指令 MUL IMUL
8位: 其中1个乘数在AL中,结果 为16位保存在AX中。
16-〉32 1个乘数-〉AX 32-〉DX AX
7、除法指令
16位/8位 16位被除数预先放在AX中,商为8位在AL中,余数为8位在AH中
32位/16位
8086CPU处理32位数时,用2个寄存器: DX 高16位 AX 低16位
8、逻辑指令:
AND OR XOR NO TEST
9、移位运算
注意:只移1位的格式: SAL AL,1
大于1位,预先存放在CL
格式: SAL AL,CL
10、跳转指令
1)JMP
2)单个条件(单个标志)转移指令
JC JNC JZ JNZ JS JNS
3)2个数比较大小
无符号数: JA 大于 JB 小于
有符号数: JG 大于 JL 小于
4) LOOP指令
循环次数在CX 每循环一次CX减1
1、 变量的定义 在数据段定义
变量是指存放存储单元中的数据,这些数据在程序运行期间是可以改变的。变量的段通常由DS或者ES指示
2、操作数:内存操作数 立即数 寄存器
3、段的定义
DATA SEGMENT
....
DATA ENDS
4、段假定:ASSUME
5、属性分离符 OFFSET SEG
6、汇编语言的基本格式:
DATA SEGMENT
......(定义变量)
DATA ENDS
CODE SEGMENT
ASUUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
.....(程序设计)
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
7、DOS功能调用
INT 21H
1) 1号功能调用 AH=1
MOV AH,1
INT 21H 输入1个ASCII码字符
输入的ASCII值--〉AL
2)2号 AH=2
MOV DL, 'A'
MOV AH,2
INT 21H :输出1个ASCII字符
3)8号 AH=8
MOV AH,8
INT 21H :不带回显的输入
4)字符串输出 AH=9
MOV DX,OFFSET STR
MOV AH,9
INT 21H
其中 str是定义的字符串,且必须有'$'符结尾。
5)字符串输入 AH=10
MOV DX,OFFSET BUF
MOV AH,10
INT 21H
其中:BUF的格式:
BUF DB 200
DB ? :表示实际长度
DB 200 DUP(?)
200表示最大长度。
1. 补码是如何得到的?有什么作用?
正数的补码与其反码相同,负数的补码为其反码在最低位加1。
补码表示的数与机器字长有关,带符号数用补码表示的好处在于可将减法运算变为加法运算,使运算简便,容易实现。
2. 8086逻辑地址格式?如何将逻辑地址转化为物理地址?
任何一个逻辑地址都由段基址和段内偏移地址构成,都是无符号16位二进制数,书写时常用4位十六进制数表示。
物理地址=段基值×10H+偏移地址
3. 在加法、减法运算时,怎样判断溢出的问题?
进行加法运算时,每当判断出次高位向最高位有进位,而最高位无进位时,可知产生溢出,使OF=1;每当判断出次高位向最高位无进位,而最高位却往前有进位时,也产生溢出,使OF=1。
进行减法运算时,每当判断出次高位需要借位,而次高位没向最高位产生借位时,会出现溢出,时OF=
1;每当次高位向最高位有借位,而最高位却往前有进位时,也产生溢出使OF=1。
4. 变量和标号有什么作用?它们各代表什么?
变量代表存放在某些存储单元数据,这些数据在程序运行期间可以随时被修改,变量通过变量名在程序中引用。
标号是一组机器指令所起名字,标号可有可无,只有当需要用符合地址来访问该语句时,才给此语句赋予标号,标号是程序目标标志,和某地址相联系,供转移或循环指令控制转移使用。
1. 比较2个数的大小 x,y 如果x>y 则AX=1,否则 AX=0.
MOV AX,1
MOV BL,X
CMP BL,Y
JA P1
MOV AX,0
B1:NOP
2.交换AX,BX的内容
XCHG AX,BX
3.交换200H、300H存储单元的内容?
MOV AL,[200H]
XCHG AL,[300H]
MOV AL,[200H]
4.用4种方法将AX寄存器清0
SUB AX,AX
AND AX,0
补码的最小负数MOV AX,0
XOR AX,AX
5.用汇编指令完成下列公式:
(其中Z位32位数,X,Y为16位数,x1,x2为8位数)
1)X1=X1+X2 X1=X1-X2
MOV AL,X1
MOV BL,X2
ADD AL,BL
MOV X1,AL
同前, SUB AL,BL
MOV X1,AL
2)X=X+Y X=X-Y
MOV AX,X
MOV BX,X
ADD AX,BX
MOV X,AX
同前, SUB AX,BX
MOV X,AX
3)X=(Z+100)/Y Z=X*Y+50
MOV AX,Z MOV AX,X
ADD AX,100 MOV BX,Y
DIY Y MUL BX
MOV X,AX ADD AX,50
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论