《汇编语言程序设计》期末复习 (1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
掌握作业、实验
1. 数据段NUMBER单元有一个数X,判断5<X≤24?若是置 FLAG单元为0,否则置FLAG单元为-1。
解: .486 DATAS SEGMENT USE16 NUMBER DB ? FLAG DB 0 DATAS ENDS
开始
x≤5 N x > 24
CODES SEGMENT USE16 N ASSUME CS:CODES,DS:DATAS START: MOV AX , DATAS FLAG ← -1 FLAG ← 0 MOV DS , AX CMP NUMBER , 5 JNA NEXT 退出到
第3章 指令系统
1. 汇编语言程序开发过程
编辑
ASM 文件
编译
OBJ 文件
链接
EXE文件 COM文件
2. 源程序中的语句类型
一个完整的汇编语言源程序应包含2类语句: 指令性语句(符号指令)、指示性语句(伪指令) 概念:指令、指令地址、指令长度
立即寻址方式:获得立即数 寄存器寻址方式:获得寄存器操作数 存储器寻址方式:获得存储器操作数(内存操作数)
1. 基本结构寄存器的名称、位长和作用
(1)通用寄存器: 32位:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP 16位:AX、BX、CX、DX、SI、DI、BP、SP 8位:AL、AH、BL、BH、CL、CH、DL、DH (2)段寄存器:CS、SS、DS、ES、FS、GS (3)指令指针寄存器:EIP、IP (4)标志寄存器:FLAGS
解: DATA X NUM DATA CODE STA: .486 NEXT: LOOP AGA ROL BX, 1 SEGMENT USE16 CMP NUM, 10 DW ? JC DISP N DB 0 CF=0? MOV AH, 2 ENDS MOV DL, '1' Y NUM ← NUM + 1 N USE16 SEGMENT INT 21H CX=0? ASSUME CS:CODE, DS:DATA SUB NUM, 10 Y MOV AX, DATA DISP: MOV AL, NUM N 显示’1’ NUM<10 MOV DS, AX ? ADD AL, 30H NUM ← NUM - 10 MOV BX, X MOV AH, 0EH Y MOV CX, 16 INT 10H NUM ← NUM + 30H MOV NUM, 0 MOV AH, 4CH 显示NUM ROL BX, 1 INT 21H JNC NEXT CODE ENDS 退出到 DOS INC NUM END STA
[EXE格式程序清单] ;二进数→十六进数ACSII码 BEG: MOV AX,DATA N2_16ASC PROC MOV SI,OFFSET BUF MOV DS,AX ;输出缓冲区地址→SI MOV CX,4 MOV COUNT,4 MOV BX,OFFSET BNUM LAST: ROL EDX,4 AGA: MOV DX,[BX] AND DL,0FH SAL EDX,16 CMP DL,10 JC NEXT CALL N2_16ASC ADD DL,7 MOV AH,9 NEXT: ADD DL,30H MOV DX,OFFSET BUF MOV [SI],DL INT 21H INC SI ;地址加1 ;显示一个16进数 DEC COUNT ;计数 JNZ LAST ADD BX,2 ;地址加 2 RET LOOP AGA N2_16ASC ENDP MOV AH,4CH CODE ENDS INT 21H END BEG
BX ← 某值
AGA:
例:设从BNUM单元开始,有4个16位的二进制数,要求 把它们转换成16进制数,并送屏幕显示。
[程序清单] . 486 DATA SEGMENT USE16 BNUM DW 0001001000110100B ;1234H DW 0101011001111000B ;5678H DW 0001101000101011B ;1A2BH DW 0011110001001101B ;3C4DH BUF DB 4 DUP(?), ‘H $’ ;输出缓冲区 COUNT DB 4 DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE, DS:DATA
[BX+SI+位移量]、[BX+DI+位移量]
[BP+SI+位移量]、[BP+DI+位移量]
4. 常用伪指令
(1)数据字义伪指令:DB、DW、DD (2)等值伪指令:EQU、= 5. 常用运算符 $运算符、SEG运算符、OFFSET运算符、 PTR运算符、[ ]
例:BUF
LL S LLL LLLL 分别写出LL=
汇编语言程序设计
期末复习
题型
单项选择题 填空题 简答题 应用题 等等
第1章 计算机基础
1. 二进制数、十进制数、十六进制数以及BCD码数之间 的转换方法
例:(129.5)10=( (10010111)BCD=( 例 :字长=8位,则[-6]补=( 的真值为( ) 16 )2=( )16 )10=( )2 ) 16,若[X]补=E8H,则X
用ASSUME语句说明段约定;
用汇编结束语句说明源程序结束; 程序在完成预定功能之后,应能安全返回操作系统
2. 汇编语言源程序的编程格式 EXE和COM格式 3. 系统功能调用 调用模式
MOV AH , 功能号 设置入口参数 INT 中断类型码 分析出口参数
DOS系统功能:
中断类型码21H,功能号01H、02H、09H、0AH、4CH
5. 熟记0~9、A~F、回车符、换行符的ASCII码 6. 微型计算机机的硬件结构
AB地址总线
C P
存储器
存储器
I/O接口
I/O设备 DB数据总线 CB控制总线
U
例1:微处理器与I/O接口及存储器进行信息传送是通过三总线来完成, 该三总线为 、 和地址总线。
例2:冯诺依曼体系结构计算机的硬件组成。
3. 80486的寻址方式:3大类7种寻址方式
内存寻址方式
(1) 直接寻址
Байду номын сангаас
16位寻址规定可使用的寄存器
(2) 寄存器间接寻址
(3) 基址寻址 (4) 变址寻址 (5) 基址加变址寻址
[BX]、[BP]、[SI]、[DI] [BX+位移量]、[BP+位移量] [SI+位移量]、[DI+位移量]
算术运算指令
逻辑运算和移位指令
转移和调用指令(表3.8、3.9和3.10及CALL、RET、 LOOP) 串传送指令:MOVSB、MOVSW、MOVSD及REP前缀 处理机控制指令
第4章 汇编语言程序设计
1. 一个完整的汇编语言源程序在结构上包括:
① ② ③ ④ ⑤ ⑥
用方式选择伪指令说明执行该程序的微处理器类型; 用段定义语句定义每一个逻辑段; 用过程定义语句定义每一个子程序;
BIOS系统功能:
键盘输入功能:中断类型码16H,功能号00H、01H 屏幕显示功能:中断类型码10H,功能号00H、0EH
4. 结构化程序设计 顺序结构、分支结构、循环结构 子程序、宏指令 5. 代码转换 二进制数显示 二进制数→十六进制数显示 BCD码→二进制数 二进制数→十进制数
① ② ③
④
加电、复位后,486自动工作在实模式,系统在DOS管 理下 实模式下486只能访问第一个1M内存(00000H~FFFFFH) 存储管理部件对存储器只进行分段管理,没有分页功 能,每一逻辑段的最大容量为64K 在实模式下,段寄存器中存放段基址
3. 实地址模式下,物理地址的形成
物理地址计算公式: 物理地址=段基址*16+偏移地址
例: 将BX寄存器的内容以二进制数格式显在屏幕上
BX=1110010011100110B
0
CF CF CF
RCL
ROL
SAL
数→BX,16 →CX ‘0’→AL BX左移一位 0 C标=? 1 ‘1’→AL 调BIOS.0EH CX-1→CX
N
CX=0 返DOS
Y
.486 CODE SEGMENT USE16 ASSUME CS:CODE BEG: MOV BX,5678H MOV CX,16 LAST: MOV AL,’0’ ROL BX,1 JNC NEXT MOV AL,’1’ NEXT: MOV AH,0EH INT 10H LOOP LAST MOV AH,4CH INT 21H CODE ENDS END BEG
7. 存贮单元和存贮器地址
存储器由若干“存储单元”组成,每一单元存放一个“字 节”的信息 系统为每一单元编排一个地址,地址码为二进制数,习惯 上写成16进制 存储器容量由地址线“宽度”决定 例:1M容量的存储器地址范围:00000H~FFFFFH,由20根 地址线提供地址码
第2章 80x86微处理器
DOS
CMP JA JMP Y NEXT: MOV EXIT: MOV INT Y CODES ENDS END
NUMBER , 24 NEXT EXIT FLAG, -1 AH , 4CH 21H START
9. 编程统计BX寄存器中 16位二进制数中为1的位的个数,并 CX ← 16 以十进制格式显示 NUM ← 0
2. 真值数与补码数之间的转换方法
3. n位字长的有符号数、无符号数的数值范围 :
n位字长补码数:-2n-1~+2n-1-1 n位字长无符号数: 0~2n-1 例 :8位二进制补码和无符号数的取值范围分别是________。
4. 补码计算并对结果进行分析
例:字长=8,用补码形式完成(+75)+(-6)运算,要求有运算 过程并讨论结果是否溢出。 解:∵ (+75)补=0100,1011B (-6)补=1111,1010B ∴ (+75)+(-6) = (+75)补+ (-6)补 = 0100,1011B + 1111,1010B =1,0100,0101B ∴运算结果为0100,0101B,且OF=0 ∴结果不溢出
DB EQU DB EQU EQU
‘THE QUICK BROWN FOX’ $-BUF ‘HELLO’ $-S $-BUF ,LLL= ,LLLL= 。
6. 80486基本指令集 传送类指令
MOV、LEA、XCHG PUSH、POP、PUSHA、POPA、PUSHF、POPF ADD, ADC, INC; SUB, SBB, DEC, CMP, NEG; MUL, IMUL; DIV, IDIV; DAA AND, OR, NOT, XOR, TEST SHL, SAL, SHR, SAR, ROL, ROR, RCL, RCR
6种状态标志:CF、OF、ZF、PF、AF、SF 3种控制标志 :DF、IF、TF
例:80486 CPU中的SP寄存器是一个_______位的寄存器。 A. 8位 B. 16位 C. 24位 D. 32位
2. 80486的工作模式: 实地址模式、保护虚拟地址模式以及虚拟8086模式 实模式的特点: