汇编语言程序设计复习

更新时间:2023-09-30 00:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

知识点

第一章 基础知识

(1)正负数的补码表示, 掌握计算机中数和字符的表示;

eg.假设机器字长为8位,[+3]补 = B,[-3]补= H 。

十六进制数0F8H表示的十进制正数为 ,表示的十进制负数为 。

8位二进制数被看成是带符号补码整数时,其最小值是 ,最大值是 。

计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是 码,称为美国 码。 第二章80x86计算机组织

(1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器 eg: IP寄存器中保存的是?FLAGS标志寄存器中共有几位条件状态位,有几位控制状态位,标志寄存器分为哪2类?哪个标志位用来控制可屏蔽中断请求是否被CPU响应。键盘I/O、显示I/O和打印I/O分别对应16、10和17号中断。 (2)存储单元的地址和内容,存储器地址的分段,实模式下逻辑地址、物理地址的表示。

eg.如果SS=6000H,说明堆栈段起始物理地址是________。

已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为________。 如果数据段中一个内存单元对应的物理地址为3F756H,(DS)=3F00H,那么使用DS段寄存器指明该单元的段基值时,需要使用哪一个偏移量才能正确访问该单元________。

第三章80x86的指令系统和寻址方式

与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址)。数据传送指令(通用数据传送指令、累加器专用传送指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响[of,cf,sf,zf])、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以后,商和余数?))、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS指令,与REPE/REPZ和REPNE/REPNZ联合工作的CMPS、SCAS指令)、控制转移指令(无条件转移指令、条件转移指令、循环指令、子程序、中断)。

eg.【习题3.8】假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL的偏移地址为0050H,试指出下列

源操作数字段的寻址方式是什么?其物理地址值是多少?

(1) MOV AX, 0ABH (2) MOV AX, BX (3) MOV AX, [100H] (4) MOV AX, VAL

(5) MOV AX, [BX] (6) MOV AX, ES:[BX] (7) MOV AX, [BP] (8) MOV AX, [SI] (9) MOV AX, [BX+10] (10) MOV AX, VAL[BX]

(11) MOV AX, [BX][SI] (12) MOV AX, VAL[BX][SI] 假定 (DS)= 1000H, (SS)= 2000H,(SI)= 3000H,(BX)= 0100H,(BP)= 0200H,数据段中变量名为OVAR的偏移地址值为0050H,请指出下列源操作数的寻址方式是什么?其物理地址值是多少?

1. MOV DX, [1000H] 2. MOB DX, [BX] 3. MOV DX, OVAR[BP] 4. MOV DX, [BX+SI]

5. MOV DX, OVAR[BX][SI] 将首地址为STRING的字节数组的第7个元素(编号从0开始)送到累加器AL中,用SI寄存器相对寻址的指令为: 和 。 下列ASCII码串(包括空格符)依次存储在起始地址为CSTRING的字节单元中:

CSTRING DB ‘BASED ADDRESSING’ 请编写指令将字符串中的第1个和第7个字符传送给DX寄存器。

如果JMP指令采用段间间接寻址,那么转移地址存放在4个相邻字节单元中,其中前两个字节存放的是 ,而后两个字节存放的是 。 重复前缀指令REP的重复次数由 决定。

在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是 或

当标志位 =1时表示无符号数运算产生溢出,而当标志位 =1是表示带符号数运算产生溢出。

AL和VAR字节单元中分别存放一个带符号数,执行CMP AL,VAR时,如果AL>VAR,那么溢出位和符号位的关系是 。

循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是________。 阅读下面的程序片段,并分析执行结果。 MOV AX,723AH MOV BX,0C86BH SUB AL,BL SBB AH,BH XOR AL,01H ADC AX,0 执行该程序片段后:

(AX)= ,CF = ,OF = 。

第四章 汇编语言程序格式

伪操作:数据定义及存储器分配伪操作,表达式赋值伪操作EQU,段定义伪操作、程序开始和结束伪操作、对准伪操作、基数控制伪操作。

汇编语言程序格式:汇编语言源程序中的每个语句的组成格式:名字项、操作项(包括?)、操作数项和注释项 eg.在某数据段内定义变量

BUFFER DB 30 DUP (20)

表达式 TYPE BUFFER的值为 。

设某数据段:

DATA SEGMENT ORG 20H NUM1=8

NUM2=NUM1+10H

DA1 DB‘COMPUTER’ DB 0AH,0DH COUNT EQU $-DA1

DA2 DW ‘CO’,’MP’,’UT ,’ER’ DATA ENDS

请回答:(1)DA1的偏移地址是: 。 (2)COUNT的值是 。

(3)DA2+5字节单元的内容是 。 执行下列指令序列后,AX寄存器中的内容是什么? TABLE DW 10,20,30,40,50 ENTRY DW 3 ……

MOV BX, OFFSET TABLE ADD BX, ENTRY MOV AX, [BX]

第五章 循环与分支程序设计 循环程序结构,分支程序结构

eg. 阅读如下程序段:

ADRR DB XXH,XXH,……,XXH NUM EQU $-ADRR RETT DB? …

MOV CX,NUM MOV BX,-1 DON:INC BX

CMP ADRR[BX],0

LOOPZ DON JNZ NEXT MOV BL,OFFH

NEXT:MOV RETT,BL

HLT

请回答(1)该程序完成的功能是什么?

(2)程序执行后RETT字节单元中的内容是什么? 4.STRING DB ABCDEFGHIJ ┇

MOV AH,01 ;从键盘输入字符1-9 INT 21H

AND AL,0FH DEC AL

XOR AH,AH

MOV BX,OFFSET STRING ADD BX,AX MOV BL,[BX]

MOV AH,02H ;显示输出 INT 21H ┇

请回答:(1)上述程序段的功能是什么? 从键盘输入字符 4 ,程序段有什么结果?

阅读程序段:

BLOCK DB 20H,1FH,08H,81H,OFFH… RESULT DB? …

START:LEA SI,BLOCK

MOV CX,[SI] INC SI

MOV AL,[SI]

LOP1:CMP AL,[SI+1]

JNG NEXT

MOV AL,[SI+1]

NEXT:INC SI

LOOP LOP1

MOV RESULT,AL

问:(1)该程序完成的功能是 。

(2)该程序循环的次数是 。 下列程序片段用来分别统计ARRAY数组中奇数和偶数的个数。请在空白处填写合适的指令。

DATA SEGMENT

ARRAY DW 23ABH,1570H,567,1765H,46,5210H COUNT EQU ($-ARRAY)/2 DA1 DB ? DA2 DB ? DATA ENDS ……

LEA SI,ARRAY MOV CX,COUNT LOP1:MOV AX,[SI]

JZ LOP2 INC BL JMP LOP3 LOP2:INC BH

LOP3: DEC CX JNZ LOP1 MOV DA1,BL MOV DA2,BH

编程实现: 习题5.3,5.23

判断寄存器AH和AL中第3位是否相同,如相同,AH置0,否则AH置全1。实现下列算式:W=X+Y+36-Z。设X、Y、Z、W均为双字长数据,各自的低十六位数和高十六位数分别存放在X、X+2、Y、Y+2、Z、Z+2的存储单元中,结果的低十六位字和高十六位字分别存放在W和W+2两个单元中。

写出执行以下计算的指令序列,其中U、V、W和Z均为存放16位带符号数单元的地址。 Z←W-(U+6)-(V+9)

试编写一程序段求出双字长数的绝对值。双字长数在A和A+2单元中,结果存放在B和B+2单元中。

本文来源:https://www.bwwdw.com/article/h1dd.html

Top