复习ASM含部分答案
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3。实地址模式下,物理地址的形成
02
单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。
物理地址计算公式:
03
在80486实地址模式下,设某存贮单元的段基址为FEFFH,偏移地址为1000H,则该存贮单元的物理地址为___FFFF0H___。
物理地址=段基址*16+偏移地址
2。存贮单元和存贮器地址 .存储器由若干“存储单元”组成,每一单元存放一个“字节”的信息。 .系统为每一单元编排一个地址,地址码为二进制数,习惯上写成16进制。 .存储器容量由地址线“宽度”决定。 例:1M容量的存储器 地址范围:00000H~FFFFFH 由20根地址线提供地址码。
源、目操作数不可同为内存操作数 源、目操作数属性一致(长度相同) 当目标操作数为间址、变址、基址、基+变址的内存操作数,而源操作数为单字节/双字节立即数,则目标操作数必须用PTR说明类型
若操作数为间、变、基、基+变的内存操作数,则必须用PTR说明类型
对于单操作数指令(如:I NC,DEC)
BCD调整 DAA
通用传送 MOV LEA
堆栈操作指令 PUSH/POP
基本四则运算 ADD ADC SUB SBC MUL IMUL DIV IDIV INC DEC
第四类 逻辑运算
1.逻辑运算 NOT AND OR XOR 注意:NOT不影响标志,其余三条指令 仅影响S 、Z、P标志,而使C和O标志=0。
2.子程序调用与返回 CALL/ RET
转移和调用指令是如何改变CS和IP的值 段内调用与返回 /段间调用与返回压入和弹出堆栈的字节数各是多少字节?
移位指令的移位次数只能是立即数或CL寄存器
第五类 串操作指令 (REP) MOVSB(W/D) LODSB(W/D) (REP) STOSB(W/D) (REPE)/(REPNE) CMPSB(W/D) (REPE)/(REPNE) SCASB(W/D)
4
[-66]补= 10111110
5
[-99]补= 10011101
6
[66+99]补= 01011011
7
∴ -66-99=+01011011=+91
8
C标=1 O标=1,因为O标=1,所以结果溢出错误
9
C P U
存储器
一.实模式的特点:
加电、复位之后,486自动工作在实模式,系统在DOS管理下 在实模式下,486只能访问第一个1M内存(00000H~FFFFFH) 储管理部件对存储器只进行分段管理,没有分页功能,每一逻辑段的最大容量为64K。 在实模式下,段寄存器中存放段基址。
第三章
01
单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。
第六类 处理机控制指令 CLD/STD
执行指令前应做那些准备工作? 串比较指令、串搜索指令执行后Z标志的含义。
例: 设SS=2000H,SP=2000H,AX=3000H,BX=4000H,执行 PUSH AX PUSH BX MOV BX,SP POP AX 之后,SS= 2000H ,SP= 1FFEH ,AX= 3000H ,BX= 1FFCH 。 例: 设BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么? MOV CX,10 LEA BX,BUF K2: MOV AL,[BX] CMP AL,‘z’ JNE K1 SUB AL,20H MOV [BX],AL K1: INC BX LOOP K2 答:将BUF开始的小写字母z转换成大写字母Z。
例:指出下列指令源操作数的寻址方式: ADD AX,TABLE _____直接__________ MOV AX,[BX+SI+6] __基址加变址_______ MOV DX,[BX] ____寄存器间接寻址__ MOV DX,BX _____寄存器_________ MOV AL,-1 ____立即数__________ 例:设BX=1200H,SI=0002H,DS=3000H,(31200H)=50H,(31201H)=02H,(31202H)=0F7H,(31203H)=90H。请写出下列各条指令单独执行后,有关寄存器及存储单元的内容。 1。DEC BYTE PTR[SI+1200H] 指令执行后 (31202H)=__0F6___H, 操作数的寻址方式为_____变址_______。 2。 MOV AX,WORD PTR[BX+SI]指令执行后, AX=_90F7_H,源操作数的寻址方式为___变址加基址_________。
[19-96]补=10110011
根据[[X]补]补=[X]原: [19-96]原=11001101B 所以19-96=-77 C标=0 ,O标=0。 因为O标=0,所以结果无溢出 正确
综合题:
1
例2: 用补码运算-66-99,并判断结果是否溢出(需给出C标和 O标)?
2
解:
3
[-66-99]补= [-66]补+ [-99]补
对于双操作数指令(如:MOV,ADD,CMP)
四
五
5 、80486基本指令集
若操作数为间、变、基、基+变的内存操作数,则必须用PTR说明类型
例:下列指令中,错误的指令条数为 3 。 INC [BX] MOV AL,[DX] MUL 100 MOV AX,DS:[BP] MOV BUF1,BUF2
第五章
2、80486的寻址方式
1、源程序中的语句类型
一个完整的源程序应包含2类语句: 指令性语句(符号指令)、指示性语句(伪指令)
内存寻址方式 16位寻址规定可使用的寄存器 (1) 直接寻址 (2)寄存器间接寻址 [BX],[BP],[SI],[DI] 段寄存器:[间址寄存器] 某单元的物理地址=段寄存器内容×16+间址寄存器 (3)基址寻址 [BX+位移量],[BP+位移量] 段寄存器:[基址寄存器+位移量] 物理地址=段寄存器内容×16+基址寄存器+位移量 (4)变址寻址 [SI+位移量],[DI+位移量] (5)基址+变址寻址 [BX+SI],[BX+DI],[BP+SI],[BP+DI]
汇编语言程序设计复习
第一章
#2022
综合题: 例1: 用补码运算19-96,并判断结果是否溢出(需给出C标和 O标)?
解: [19-96]补= [19]补+ [-96]补
[19]补= 00010011 [-96]补= 10100000
2.移位 SAL SAR SHL SHR RCL RCR ROL ROR 特别要注意各种移位指令如何影响进位标志C。
3.测试 TEST
第三类 转移和调用指令
1.无/有条件转移 JMP JC/JNC JZ/JNZ JS/JNS JP/JNP JO/JNO (无符号数比较)JA JNA JNC JC (有符号数比较)JG JGE JL JLE
例 :设数据段有: DAT1 DB ‘ABCD’ LL1 EQU $-DAT1 DAT2 DW ‘AB’,‘CD’ LL2 EQU $-DAT1 LL3 EQU $-DAT2 (1) 汇编后: LL1的值是 4 , LL2的值是 8 ,LL3的值是 ____4_____。 (2)执行如下程序段后,AX中的内容是 4443 H,BX中的内容是 4344H。 代码段: 对DS初始化 MOV AX,WORD PTR DAT1+2 MOV BX, DAT2+2
第三章
2。80486的工作模式:实地址模式和保护虚拟地址模式。 80486的三个存贮地址空间:逻辑空间、线性空间和物理空间。 在实模式下,486只能访问第一个1M内存(00000H~FFFFFH) 逻辑空间=物理空间=1M(220) 在保护模式下,486可以访问4G(232)物理存储空间(0000,0000H~FFFF,FFFFH) 逻辑空间(虚拟空间)可达246=64T
第六章 1。EXE文件和COM文件的编程格式的区别。 2。汇编语言从源程序的建立到运行可执行程序的主要步骤。 3。DOS功能调用(INT21H):01H,02H,09H,0AH BIOS键盘功能调用(INT16H): 00H,01H, 屏幕功能调用 (INT10H):00H,0EH 4。 宏指令与子程序的定义和调用格式 两者之间的区别与联系。
第三章
1。基本结构寄存器的名称、位长和作用。 (1)通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP (2)段寄存器:CS,SS,DS,ES,FS,GS (3)指针寄存器:EIP,ESP (4)标志寄存器:EFLAG 15位标志分为两类:状态标志和控制标志 6种状态标志:CF OF ZF PF AF SF 例:80486 CPU中的SP寄存器是一个 B 位的寄存器。 A. 8位 B. 16位 C. 24位 D. 32位
AB地址总线
DB数据总线
CB控制总线
二
一
存储器
I/O接口
I/O设备ຫໍສະໝຸດ 例:微处理器与I/O接口及存储器进行信息传送是通过三总线来完成, 该三总线为 、 和地址总线。
第二章
1。微型机的硬件结构
3、常用伪指令 (1)数据字义伪指令 DB DW DD (2)等值伪指令 EQU = 例:某程序中的数据定义如下: DAT1 DW 1234H,5678H,’AB’,’CD',’2’ DAT2 DB 4 DUP(?) DAT3 DD ? CN EQU $-DAT1 请问CN的值是 18 . DAT1+5字节单元的内容是___’A’___. 4、 常用运算符 $运算符 SEG运算符 OFFSET运算符 PTR运算符 例:数据段有: BUF DB 11,22,33,44 请修改下列指令(红色为修改后的内容) MOV AX,WORD PTR BUF INC BYTE PTR [BX]
02
单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。
物理地址计算公式:
03
在80486实地址模式下,设某存贮单元的段基址为FEFFH,偏移地址为1000H,则该存贮单元的物理地址为___FFFF0H___。
物理地址=段基址*16+偏移地址
2。存贮单元和存贮器地址 .存储器由若干“存储单元”组成,每一单元存放一个“字节”的信息。 .系统为每一单元编排一个地址,地址码为二进制数,习惯上写成16进制。 .存储器容量由地址线“宽度”决定。 例:1M容量的存储器 地址范围:00000H~FFFFFH 由20根地址线提供地址码。
源、目操作数不可同为内存操作数 源、目操作数属性一致(长度相同) 当目标操作数为间址、变址、基址、基+变址的内存操作数,而源操作数为单字节/双字节立即数,则目标操作数必须用PTR说明类型
若操作数为间、变、基、基+变的内存操作数,则必须用PTR说明类型
对于单操作数指令(如:I NC,DEC)
BCD调整 DAA
通用传送 MOV LEA
堆栈操作指令 PUSH/POP
基本四则运算 ADD ADC SUB SBC MUL IMUL DIV IDIV INC DEC
第四类 逻辑运算
1.逻辑运算 NOT AND OR XOR 注意:NOT不影响标志,其余三条指令 仅影响S 、Z、P标志,而使C和O标志=0。
2.子程序调用与返回 CALL/ RET
转移和调用指令是如何改变CS和IP的值 段内调用与返回 /段间调用与返回压入和弹出堆栈的字节数各是多少字节?
移位指令的移位次数只能是立即数或CL寄存器
第五类 串操作指令 (REP) MOVSB(W/D) LODSB(W/D) (REP) STOSB(W/D) (REPE)/(REPNE) CMPSB(W/D) (REPE)/(REPNE) SCASB(W/D)
4
[-66]补= 10111110
5
[-99]补= 10011101
6
[66+99]补= 01011011
7
∴ -66-99=+01011011=+91
8
C标=1 O标=1,因为O标=1,所以结果溢出错误
9
C P U
存储器
一.实模式的特点:
加电、复位之后,486自动工作在实模式,系统在DOS管理下 在实模式下,486只能访问第一个1M内存(00000H~FFFFFH) 储管理部件对存储器只进行分段管理,没有分页功能,每一逻辑段的最大容量为64K。 在实模式下,段寄存器中存放段基址。
第三章
01
单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。
第六类 处理机控制指令 CLD/STD
执行指令前应做那些准备工作? 串比较指令、串搜索指令执行后Z标志的含义。
例: 设SS=2000H,SP=2000H,AX=3000H,BX=4000H,执行 PUSH AX PUSH BX MOV BX,SP POP AX 之后,SS= 2000H ,SP= 1FFEH ,AX= 3000H ,BX= 1FFCH 。 例: 设BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么? MOV CX,10 LEA BX,BUF K2: MOV AL,[BX] CMP AL,‘z’ JNE K1 SUB AL,20H MOV [BX],AL K1: INC BX LOOP K2 答:将BUF开始的小写字母z转换成大写字母Z。
例:指出下列指令源操作数的寻址方式: ADD AX,TABLE _____直接__________ MOV AX,[BX+SI+6] __基址加变址_______ MOV DX,[BX] ____寄存器间接寻址__ MOV DX,BX _____寄存器_________ MOV AL,-1 ____立即数__________ 例:设BX=1200H,SI=0002H,DS=3000H,(31200H)=50H,(31201H)=02H,(31202H)=0F7H,(31203H)=90H。请写出下列各条指令单独执行后,有关寄存器及存储单元的内容。 1。DEC BYTE PTR[SI+1200H] 指令执行后 (31202H)=__0F6___H, 操作数的寻址方式为_____变址_______。 2。 MOV AX,WORD PTR[BX+SI]指令执行后, AX=_90F7_H,源操作数的寻址方式为___变址加基址_________。
[19-96]补=10110011
根据[[X]补]补=[X]原: [19-96]原=11001101B 所以19-96=-77 C标=0 ,O标=0。 因为O标=0,所以结果无溢出 正确
综合题:
1
例2: 用补码运算-66-99,并判断结果是否溢出(需给出C标和 O标)?
2
解:
3
[-66-99]补= [-66]补+ [-99]补
对于双操作数指令(如:MOV,ADD,CMP)
四
五
5 、80486基本指令集
若操作数为间、变、基、基+变的内存操作数,则必须用PTR说明类型
例:下列指令中,错误的指令条数为 3 。 INC [BX] MOV AL,[DX] MUL 100 MOV AX,DS:[BP] MOV BUF1,BUF2
第五章
2、80486的寻址方式
1、源程序中的语句类型
一个完整的源程序应包含2类语句: 指令性语句(符号指令)、指示性语句(伪指令)
内存寻址方式 16位寻址规定可使用的寄存器 (1) 直接寻址 (2)寄存器间接寻址 [BX],[BP],[SI],[DI] 段寄存器:[间址寄存器] 某单元的物理地址=段寄存器内容×16+间址寄存器 (3)基址寻址 [BX+位移量],[BP+位移量] 段寄存器:[基址寄存器+位移量] 物理地址=段寄存器内容×16+基址寄存器+位移量 (4)变址寻址 [SI+位移量],[DI+位移量] (5)基址+变址寻址 [BX+SI],[BX+DI],[BP+SI],[BP+DI]
汇编语言程序设计复习
第一章
#2022
综合题: 例1: 用补码运算19-96,并判断结果是否溢出(需给出C标和 O标)?
解: [19-96]补= [19]补+ [-96]补
[19]补= 00010011 [-96]补= 10100000
2.移位 SAL SAR SHL SHR RCL RCR ROL ROR 特别要注意各种移位指令如何影响进位标志C。
3.测试 TEST
第三类 转移和调用指令
1.无/有条件转移 JMP JC/JNC JZ/JNZ JS/JNS JP/JNP JO/JNO (无符号数比较)JA JNA JNC JC (有符号数比较)JG JGE JL JLE
例 :设数据段有: DAT1 DB ‘ABCD’ LL1 EQU $-DAT1 DAT2 DW ‘AB’,‘CD’ LL2 EQU $-DAT1 LL3 EQU $-DAT2 (1) 汇编后: LL1的值是 4 , LL2的值是 8 ,LL3的值是 ____4_____。 (2)执行如下程序段后,AX中的内容是 4443 H,BX中的内容是 4344H。 代码段: 对DS初始化 MOV AX,WORD PTR DAT1+2 MOV BX, DAT2+2
第三章
2。80486的工作模式:实地址模式和保护虚拟地址模式。 80486的三个存贮地址空间:逻辑空间、线性空间和物理空间。 在实模式下,486只能访问第一个1M内存(00000H~FFFFFH) 逻辑空间=物理空间=1M(220) 在保护模式下,486可以访问4G(232)物理存储空间(0000,0000H~FFFF,FFFFH) 逻辑空间(虚拟空间)可达246=64T
第六章 1。EXE文件和COM文件的编程格式的区别。 2。汇编语言从源程序的建立到运行可执行程序的主要步骤。 3。DOS功能调用(INT21H):01H,02H,09H,0AH BIOS键盘功能调用(INT16H): 00H,01H, 屏幕功能调用 (INT10H):00H,0EH 4。 宏指令与子程序的定义和调用格式 两者之间的区别与联系。
第三章
1。基本结构寄存器的名称、位长和作用。 (1)通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP (2)段寄存器:CS,SS,DS,ES,FS,GS (3)指针寄存器:EIP,ESP (4)标志寄存器:EFLAG 15位标志分为两类:状态标志和控制标志 6种状态标志:CF OF ZF PF AF SF 例:80486 CPU中的SP寄存器是一个 B 位的寄存器。 A. 8位 B. 16位 C. 24位 D. 32位
AB地址总线
DB数据总线
CB控制总线
二
一
存储器
I/O接口
I/O设备ຫໍສະໝຸດ 例:微处理器与I/O接口及存储器进行信息传送是通过三总线来完成, 该三总线为 、 和地址总线。
第二章
1。微型机的硬件结构
3、常用伪指令 (1)数据字义伪指令 DB DW DD (2)等值伪指令 EQU = 例:某程序中的数据定义如下: DAT1 DW 1234H,5678H,’AB’,’CD',’2’ DAT2 DB 4 DUP(?) DAT3 DD ? CN EQU $-DAT1 请问CN的值是 18 . DAT1+5字节单元的内容是___’A’___. 4、 常用运算符 $运算符 SEG运算符 OFFSET运算符 PTR运算符 例:数据段有: BUF DB 11,22,33,44 请修改下列指令(红色为修改后的内容) MOV AX,WORD PTR BUF INC BYTE PTR [BX]