《汇编语言》(王爽版)期末复习考试知识点总结

1.总线和寄存器

汇编指令是机器指令便于记忆的书写格式
计算机的数据和指令(都是二进制,由cpu区别)存储在内存或磁盘上
总线:计算机中连接cpu和其他芯片的导线。逻辑上划分为
1.地址总线:指定存储单元——宽度为20(1MB)
2.数据总线:cpu与内存或其他器件之间的数据传送——16
3.控制总线:cpu通过控制总线对外部器件进行控制

寄存器是cpu内部的信息存储单元
8086cpu有14个寄存器,都是16位(一个字),可以存放2个字节
通用寄存器可以分为两个独立的8位寄存器(如AX可分为AH和AL)
eg. add al 93H时会丢弃进位,因为al看作单独寄存器

物理地址的计算——段地址x16+偏移地址
DS存放段地址,[address]存放偏移地址
注:mov bx,1000H
       mov ds,bx

2.debug指令

1.R命令查看,改变寄存器的内容
2.D命令查看内存的内容
3.E命令改变内存的内容
4.U命令将内容中的机器指令翻译成汇编指令
5.A命令以汇编指令的格式在内存中写入机器指令
6.T指令执行机器指令

jmp指令:1.同时修改cs,ip:jmp 段地址:偏移地址
                                              jmp far ptr 标号(直接跳转到目的地址)
                2.仅修改ip:1.jmp+通用寄存器内数值;
                                   2.jmp short 标号(8位位移=标号处的地址-jmp地址后的第一个字节的地址)
                                      jmp near ptr 标号(16位位移=标号处的地址-jmp地址后的第一个字节的地址)
           

3.栈寄存器和loop循环

字的存储:低地址存放低8位,高地址存放高8位

栈寄存器:SS——存放栈顶的段地址;SP——存放栈顶的偏移地址
内存中SSx16到SSx16+SP-1作为栈
push ax:sp=sp-2;将ax中内容送入ss:sp指向的内存单元处,ss:sp指向新栈顶
pop ax:将ss:sp指向的内存单元处的数据送入ax中;sp=sp+2,指向新栈顶

三种段:
1.数据段:DS:[address]
2.代码段:CS:IP
3,栈段:SS:SP

loop指令(实现循环):cx=cx-1;判断cx中值不为0时转至标号处执行,为0时向下执行
dw:定义一个字;db:定义一个字节;dd定义双字数据(4个字节)
dup用来进行数据的重复
db/dw/dd 重复次数 dup(重复的数据)

4.汇编的各种指令

汇编中用‘ ’的方式指明数据以字符形式给出,编译器会转化为相应的ASCII码
大写字母+20H=小写字母(从a为61);小写字母-20H=大写字母(从A为41)
二重循环问题:在外层循环开始时将cx保存在寄存器,在最后赋值给cx
bx和bp都可以做基址寄存器,但bp默认为ss而不是ds

div指令:被除数默认在AX或AX和DX中;除数为8位或16位,在寄存器或内存单元中
当被除数位AX,除数为8位,商放在AL,余数放在AH
当被除数位DX和AX,除数为16位,商放在AX,余数放在DX(被除数为DX*10000H+AX)
格式: div 内存/寄存器

mul指令: 8位乘法时被乘数放在AL,结果放在AX,16时放在AX,结果放在DX(高位)和AX(低位)
格式: mul 内存/寄存器

offset 标号:取得标号的偏移地址
条件转移指令(jcxz):
格式 :jcxz 标号——如果CX=0,转移到标号处执行;否则什么也不做向下执行

标志寄存器:按每一位起作用。其中1,3,5,12,13,14,15无意义
ZF:0标志(结果为0时ZF=1)
PF:奇偶标志(1的个数为偶数时PF=1)
SF:符号标志(结果为负时SF=1)
CF:进位标志(对无符号数;有进位或借位时为1)
OF:溢出标志(对有符号数;有溢出时OF=1)

adc:带进位加法 adc ax,bx——ax=ax+bx+CF
sbb:带借位减法 sbb ax,bx——ax=ax-bx-CF
cmp指令:计算操作对象1-操作对象2,但不保存结果,只对标志寄存器产生影响
je/jz:结果为0——jne/jnz
js:结果为负——jns
jo:结果溢出——jno
jp:奇偶位为1——jnp

DF:方向标志位。如果DF=0,每次操作后si,di递增;如果DF=1,每次操作后si,di递减
串传送指令:movsb(递增递减1),movsw(递增递减2)
cld:将DF设为0,递增
std:将DF设为1,递减
eg. es为复制的目的段地址,ds为被复制串的段地址

移位指令分为逻辑移位和循环移位,算术移位等
逻辑左移:shl,将移出的最后一位放入CF,最低位补0
逻辑右移:shr,将移出的最后一位放入CF

显示数据:有25行,80列,每个单元2个字节,缓冲区段地址为b800H

5.内中断和外中断

内中断:有除法错误(0),单步执行(1),int n指令(n),溢出(4)四类
中断向量表:从0000:0000到0000:03FE,共1024个字节,256个中断项,每个中断项占4个字节
存放CS(2字节)和IP(2字节)
编写中断子程序可放在0000:0200到0000:02FF的256个字节
在有些情况下,CPU执行完当前指令后,即便发生中断也不会响应


过程:1.安装程序
          2.设置中断向量表
          3.编写子程序(末尾加iret)

安装程序:

mov ax,cs
mov es,ax
mov di,offset do0
mov ax,0
mov ds,ax
mov si,0200H
mov cx,offset do0end-offset do0
cld
rep movsb

设置中断向量表:

mov ax,0
mov es,ax
mov word ptr es:[0*4],200h
mov word ptr es:[0*4+2],0

端口:in——cpu从端口读取数据
          out——cpu往端口写入数据

外中断:由外部设备发生的事件引起的中断。分为可屏蔽中断和不可屏蔽中断。
可屏蔽中断中IF=1引发中断过程;否则不响应中断
不可屏蔽中断的中断类型码固定为2

PC键盘输入处理:
扫描码说明按下和松开的键在键盘的位置
按下时产生的扫描码叫通码,第7位为0,松开时产生的扫描码叫断码,第7位为1
输入的字符被保存在BIOS键盘缓冲区,每个键盘输入用一个字单元保存,高位存放扫描码,低位存放字符码
键盘状态字节保存控制键和切换键



以上是博主在期末复习《汇编语言》时总结的知识要点,基本都是做往年题时碰到过的选择填空。

假如对你有帮助的,麻烦点赞关注哟。关注谢谢喵!!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,汇编语言王爽第三的复习资料汇总如下: 1. 第〇章 课程资料:包括课件、源代码、电子书和课后习题答案。 2. 第一章 基础知识:介绍了汇编语言的编程思想和硬件系统的结构,以及汇编语言的主体——汇编指令。 3. 第二章 寄存器(CPU工作原理):详细介绍了CPU的工作原理和寄存器的作用。 4. 第三章 寄存器(内存访问):介绍了如何使用寄存器进行内存访问。 5. 第四章 第一个程序:演示了如何编写第一个汇编程序。 6. 第五章 [BX]和loop指令:介绍了[BX]和loop指令的使用方法。 7. 第六章 包含多个段的程序:介绍了如何编写包含多个段的程序。 8. 第七章 更灵活定位内存地址:介绍了如何更灵活地定位内存地址。 9. 第八章 数据处理的两个基本问题:介绍了数据处理中的两个基本问题——进位和溢出。 10. 第九章 转移指令的原理:介绍了转移指令的原理和使用方法。 11. 第十章 call和ret指令:介绍了call和ret指令的使用方法。 12. 第十一章 标志寄存器:介绍了标志寄存器的作用和使用方法。 13. 第十二章 内中断:介绍了内中断的概念和使用方法。 14. 第十三章 int指令:介绍了int指令的使用方法。 15. 第十四章 端口:介绍了如何使用端口进行输入输出操作。 16. 第十五章 外中断:介绍了外中断的概念和使用方法。 17. 第十六章 直接定址表:介绍了直接定址表的概念和使用方法。 18. 第十七章 使用BIOS进入键盘输入和磁盘读写:介绍了如何使用BIOS进行键盘输入和磁盘读写操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值