接口与汇编程序设计作业答案

合集下载

汇编语言程序设计(第四版)【课后答案】

汇编语言程序设计(第四版)【课后答案】

汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。

〔解答〕CPU:包括运算器、控制器和寄存器组。

运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。

存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。

外部设备:实现人机交换和机间的通信。

〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。

〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。

辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。

RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。

存储器由大量存储单元组成。

为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。

KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。

〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。

〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。

汇编语言程序设计题目以及答案

汇编语言程序设计题目以及答案

汇编语言程序设计题目以及答案[P1] 汇编语言程序设计题目以及答案汇编语言是一种底层计算机语言,它直接使用机器指令来编写程序。

本文将介绍一些汇编语言程序设计的题目,并提供相应的答案。

通过这些题目和答案的学习,读者可以更好地理解和掌握汇编语言程序设计的基本概念和技巧。

[题目一] 计算两个数的和要求:编写汇编程序,计算两个给定的整数的和,并将结果存储在指定的内存位置中。

答案:```assemblysection .datanum1 dd 10 ; 第一个整数num2 dd 20 ; 第二个整数result dd 0 ; 结果section .textglobal _start_start:mov eax, [num1] ; 将num1值存入寄存器eaxadd eax, [num2] ; 将num2值与eax寄存器中的值相加mov [result], eax ; 将结果存储到result变量mov eax, 1 ; 准备执行系统调用mov ebx, 1 ; 文件描述符:标准输出mov ecx, result ; 输出的数据mov edx, 4 ; 数据长度int 0x80 ; 执行系统调用mov eax, 1 ; 准备执行系统调用xor ebx, ebx ; 正常退出int 0x80 ; 执行系统调用```[题目二] 字符串反转要求:编写汇编程序,将一个给定的字符串反转,并将结果存储在指定的内存位置中。

答案:```assemblysection .datastr db 'Hello', 0 ; 待反转的字符串section .bssreverse resb 6 ; 存储反转后的字符串section .textglobal _start_start:mov esi, str ; esi指向待反转的字符串mov edi, reverse ; edi指向存储反转结果的位置 mov ecx, 5 ; 字符串长度为5mov ebx, 1 ; ebx用于计数reverse_loop:mov al, [esi+ebx]mov [edi-ebx+5], alinc ebxloop reverse_loopmov byte [edi+5], 0 ; 在末尾添加字符串结束符 mov eax, 4 ; 准备执行系统调用mov ebx, 1 ; 文件描述符:标准输出mov ecx, reverse ; 输出的数据mov edx, 6 ; 数据长度int 0x80 ; 执行系统调用mov eax, 1 ; 准备执行系统调用xor ebx, ebx ; 正常退出int 0x80 ; 执行系统调用```[题目三] 求平均数要求:编写汇编程序,计算给定的一组整数的平均数,并将结果存储在指定的内存位置中。

汇编语言程序设计(第四版)第3章【课后答案】

汇编语言程序设计(第四版)第3章【课后答案】

汇编语言程序设计第四版【课后习题答案】--囮裑為檤第3章汇编语言程序格式〔习题3.1〕伪指令语句与硬指令语句的本质区别是什么?伪指令有什么主要作用?〔解答〕伪指令语句与硬指令语句的本质区别是能不能产生CPU动作;伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说明,并在程序执行前由汇编程序完成处理。

〔习题3.2〕什么是标识符,汇编程序中标识符怎样组成?〔解答〕为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符;汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如-,$,?,@)组成,不能以数字开头。

〔习题3.3〕什么是保留字,汇编语言的保留字有哪些类型,并举例说明。

〔解答保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。

汇编语言对大小写不敏感。

如定义字节数和字符串的DB就是伪指令助记符。

〔习题3.4〕汇编语句有哪两种,每个语句由哪4个部分组成?〔解答〕汇编语句有执行性语句和说明性语句;执行性语句由标号、硬指令助记符、操作数和注释四部分组成;说明性语句由名字、伪指令助记符、参数和注释四部分组成〔习题3.5〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。

〔解答〕⒈编辑文本编辑程序汇编语言源程序.asm⒉汇编汇编程序目标模块文件.obj⒊连接连接程序可执行文件.exe或.com⒋调试调试程序应用程序〔习题3.6〕区分下列概念:(1)变量和标号(2)数值表达式和地址表达式(3)符号常量和字符串常量〔解答〕(1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。

(2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。

汇编语言程序设计(钱晓捷)课后答案.pdf

汇编语言程序设计(钱晓捷)课后答案.pdf

汇编语言程序设计(第二版) 钱晓捷习题答案第二章(01)2.1(1)AX=1200h(2)AX=0100h(3)AX=4C2Ah(4)AX=3412h(5)AX=4C2Ah(6)AX=7856h(7)AX=65B7h2.2(1) 两操作数类型不匹配(2) IP指令指针禁止用户访问(3) 立即数不允许传给段寄存器(4) 段寄存器之间不允许传送(5) 两操作数类型不匹配(6) 目的操作数应为[ BP ](7) 源操作数应为[BX+DI](8) 立即数不能作目的操作数2.3lea bx,table ;获取table的首地址,BX=200Hmov al,8 ;传送欲转换的数字,AL=8xlat ;转换为格雷码,AL=12H2.4堆栈是一种按“先进后出”原则存取数据的存储区域。

堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。

2.5mov ax,8057hpush axmov ax,0f79hpush axpop bx ;bx=0f79hpop [bx] ;DS:[0f79h]=8057h2.6AL=89h CF ZF SF OF PFAL=12h 1 0 0 1 1AL=0afh 0 0 1 0 1AL=0afh 1 0 1 0 1AL=00h 0 1 0 0 1AL=0ffh 0 0 1 0 1AL=00h 0 1 0 0 12.7 W=X+Y+24-Z2.8(1)ADD DX,BX(2)ADD AL,[BX+SI](3)ADD [BX+0B2H],CX(4)ADD WORD PTR [0520H],3412H(5)ADD AL,0A0H2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,Dmov ax,X ;ax=Aimul Y ;dx,ax = A*B (将操作数看作符号数,以下同)mov cx,axmov bx,dx ;bx,ax <-- dx,ax =A*Bmov ax,Z ;ax = Ccwd ;dx,ax =C (扩展符号后为双字)add cx,axadc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+Csub cx,540sbb bx,0 ;bx,cx<-- A*B+C-540mov ax, V ;ax= Dcwd ;dx,ax= D (扩展符号后为双字)sub ax, cxsbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540)idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数2.10;(1)xchg的操作数不能是立即数(2不能对CS直接赋值(3)两个操作数不能都是存储单元(4)堆栈的操作数不能是字节量(5)adc的操作数不能是段寄存器(6)没有确定是字节还是字操作(7)in不支持超过FFH的直接寻址(8)out只能以AL/AX为源操作数第二章(02)2.11;指令AX的值CF OF SF ZF PFMov ax,1407h1470h-----And ax,ax1470h00000Or ax,ax1470h00000Xor ax,ax000011Not ax0ffffh-----Test ax,0f0f0h0ffffh00101注意: 1. mov, not指令不影响标志位2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

汇编语言程序设计课后习题答案

汇编语言程序设计课后习题答案

第四章汇编语言程序设计习题答案一、单项选择题1.C2.B3.C4.C5.C6.A7.A8.C9.B10. D11.B12.B13.D14.C15.C16.A17.D18.D19.A20. C21.B22.D23.D24. A二、多项选择题1.ABCEF2.ACE3.AC4.ABCD三、填空题1.PARA2.1,2,60,120, 13.SEGMENT,ENDS4.12005.段内转移,段间转移6.AH7.过程,PROC,RET,NEAR,FAR8.LEA BX,BUF9.1, 410..0504H11.ASM,EXE12.立即寻址,直接寻址四、判断题××××V V V××V五、程序分析题1. 32.12H,3412H3.46H,73H4.(1) 从目的串中查找是否包含字符‘0’,若找到则停止,否则继续重复搜索。

(2) ZF=1, 说明已找到字符ZF=0, 说明未找到字符CX 0,说明中途已找到字符退出CX=0,且ZF=0说明串中无字符‘0’5.1, 0, 3, 2, 5, 4, 7, 6, 9, 86.87H,81H7.44AAH,44D5H8.DEC CX,JNC,JZ9.JNZ L210.ADC DX,0,CLC11.AAS12.STOSB13.1,3,1,2, 214.(2000H)=39H (2001H)=00H将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,并存入(2000H)单元,0 (2001H)15.A)2345H,6780HB)将DX、AX中存放的32位二进制数向左移动4位16.0 ,1009H0对数据段内1000H~1008H单元置数,依次送入1,2,4,8,16,32,64,128,0共九个17.20H,10,T18.①$-BUF②ASSUME CS:CODE,DS:DATA③MOV DS,AXMOV AX,0⑤JLE NEXT⑥JNZ NEXT⑦JNZ LOPA⑧BEGIN19.不相同,第一个数据段72H在前,04在后,后一个04H在前,72H在后。

微机原理、汇编与接口技术习题答案 第7章习题答案

微机原理、汇编与接口技术习题答案 第7章习题答案

微机原理、汇编与接口技术第七章习题答案7.12 TF=0时,禁止单步中断。

PUSHF ;将标志寄存器传送给AXPOP AXAND AX, 0FEFFH ;将AX的D8位置0,其余位不变PUSH AX ;将AX传送给标志寄存器POPF7.1171H, 3040H:2200H和32600H。

7.13stack segment stack 'stack'dw 32 dup(0)stack endsdata segmentIBUF DB 255, 0, 255 DUP(0)BCDMM DB 127 DUP(0)data endscode segmentbegin proc farassume ss: stack, cs: code, ds: datapush dssub ax, axpush axMOV DS, AX ;DS为中断向量表的段首址MOV AX, SEG I79 ;中断服务程序的段地址填入中断向量表MOV DS: 1E6H, AX ;1E6H=79H*4+2MOV AX, OFFSET I79 ;中断服务程序的偏移地址填入中断向量表MOV DS:1E4H, AXmov ax, datamov ds, axMOV DX, OFFSET IBUF ;键入一串十进制数MOV AH, 10INT 21HMOV DI, OFFSET BCDMM ;建立压缩BCD数存放区的地址指针INT 79Hretbegin endpI79 PROC FARINC DX ;DX指向IBUF的第二单元MOV BX,DXADD BL,[BX] ;BX指向字符串的最后一个字符INC DX ;DX指向第一个字符,即IBUF的第三单元MOV CL,4 ;二进制数移4位即BCD数移1位,移位次数送CL I790: CMP BX,DXJE I792 ;BX等于DX,则还有最高位1位待处理JA I791 ;BX高于DX,继续处理2位BCD数IRET ;BX低于DX结束I791: MOV AX,[BX-1] ;取2位BCD数的字符SUB BX,2 ;调整字符串指针AND AH,0FH ;BCD字符转变为BCD数保留在AH的低4位SHL AL,CL ;BCD字符转变为BCD数保留在AL的高4位OR AL,AH ;存2位压缩BCD数INC DI ;调整压缩BCD数存放地址指针JMP I790I792: MOV AL,[BX] ;取第一个字符,即BCD数的最高位字符AND AL,0FH; ;将BCD数字符转换为BCD数MOV [DI],AL ;存最高位BCD数IRETI79 ENDPcode endsend begin7.14stack segment stack 'stack'dw 32 dup(0)stack endsdata segmentBUFF DB 8 DUP(0)data endscode segmentbegin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axMOV ES,AXmov ax,datamov ds,axMOV AX,SEG IRQ9IS ;中断服务程序入口地址送中断向量表MOV ES:1C6H,AXMOV AX,OFFSET IRQ9ISMOV ES:1C4H,AXMOV BX,OFFSET BUFFMOV CX,8MOV DX,380H ;指向0通道地址INLOP: OUT DX,AL ;启动转换,锁存模拟通道地址IN AL,0A1H ;读屏蔽字AND AL,0FDH ;改变屏蔽字,允许IRQ9中断OUT 0A1H,ALJMP$IN AL,DX ;读取转换结果MOV [BX],ALINC BX ;指向下一通道的存放地址INC DX ;指向下一通道的地址LOOP INLOPRetbegin endpIO809: MOV AL,61H ;指定中断结束命令OUT 0A0H,ALMOV AL,62HOUT 20H,ALIN AL,0A1H ;恢复屏蔽字,禁止IRQ9中断OR AL,2OUT 0A1H,ALPOP AX ;修改返址INC AXINC AXPUSH AXIRETcode endsend start出师表两汉:诸葛亮先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。

汇编语言程序设计答案

汇编语言程序设计答案2篇汇编语言程序设计答案(一)汇编语言是一种底层的计算机语言,通过程序设计来控制计算机硬件的运行。

它是计算机体系结构的基础,可以用来编写高效的程序,实现各种任务。

下面是两个关于汇编语言程序设计的答案,帮助初学者理解汇编语言的基本概念和编程技巧。

答案一:```assemblymov ax, 5mov bx, 6add ax, bx```这个程序的作用是将寄存器ax的值设置为5,寄存器bx的值设置为6,然后将ax和bx的值相加,结果保存在ax中。

最后,ax的值为11。

答案二:```assemblymov ax, 10mov bx, 2div bx```这个程序的作用是将寄存器ax的值设置为10,寄存器bx的值设置为2,然后将ax和bx的值相除,商保存在ax中,余数保存在dx中。

最后,ax的值为5,dx的值为0。

通过以上两个简单的答案,我们可以看到汇编语言的基本操作和计算能力。

编写汇编语言程序需要了解计算机的底层架构和指令集,因为每种计算机体系结构都有不同的汇编语言。

因此,学习汇编语言需要掌握计算机组成原理和计算机体系结构的基本知识。

在编写汇编语言程序时,我们通常需要使用一些常见的指令,例如mov(数据传送)、add(加法运算)、sub(减法运算)、mul(乘法运算)、div(除法运算)、jmp(跳转指令)等等。

掌握这些常用指令和相应的语法规则是学习汇编语言的基础。

另外,汇编语言程序设计也需要学习如何使用寄存器和内存。

寄存器是存储在CPU内部的非常快速的存储器,可以暂时存储数据和指令。

CPU可以直接读取和写入寄存器中的数据。

内存是存储在计算机主存储器中的大量数据和指令。

CPU需要通过地址来访问内存中的数据和指令。

要编写高效的汇编语言程序,我们需要理解计算机的硬件原理和底层运行机制。

了解汇编语言可以提供对程序的细粒度控制,对程序性能的优化有很大帮助。

总的来说,汇编语言程序设计是一项复杂而有趣的任务。

汇编语言程序设计习题答案

第一章微型计算机系统概述1.3习题与综合练习1.解释和区别下列名词术语(1)微处理器(MP):具有中央处理器功能的大规模集成电路器件微型计算机(MC)微型计算机系统(MCS)(2)硬件:硬件是计算机系统的躯体,由控制器,运算器,存储器,输入设备,输出设备5大部分组成。

软件:软件是计算机的头脑和灵魂,可分为系统软件和应用软件。

(3)字节:8位二进制是一个字节。

字:16位二进制构成一个字。

字长:计算机的运算部件能同时处理的二进制数据的位数。

(4)指令指针:存放BIU要取的下一条指令的偏移地址。

指令寄存器:指令译码器:状态寄存器:(5)存储单元:存储内容:存储地址:存储容量:(6)RAM:ROM:软件固化:2.冯·诺依曼计算机结构的特点是什么?(1)采用二进制数的形式表示数据和指令。

(2)将指令和数据存放在存储器中。

(3) 计算机硬件由控制器,运算器,存储器,输入设备和输出设备5大部分组成。

3.件数计算机系统中复杂指令集和精简指令集的特点和用途。

复杂指令集(CISC):在微型计算机的体系结构组成结构上是以复杂指令为设计的计算机,在指令的运行过程中按指令的复杂程度来指挥计算机完成各条指令,由于各条指令复杂程度不同分配的时钟周期各不相同,执行指令所需时间就不相同。

CISC体系的指令集由微程序来实现,即每一个操作由若干微操作的程序组合来实现。

所以CISC可以使用微指令编程的方式实现多种和功能复杂的指令。

精简指令系统(RISC):不管计算机的指令如何复杂,在一个计算机时钟周期内完成,计算速度快,指令集简单。

每一条指令直接有硬布线实现,即它的每条指令原则上有自己的一套逻辑时序电路直接实现,所以单条指令的实现所占用的硬件资源较多。

因为该体系没有能采用增加单条指令的功能或高位的指令语义,也没有增加指令的条数,而是集中于它的精简指令集上。

4.CPU是计算机系统中的重要部件,试说明CPU的结构和功能。

微处理器是计算机中最关键的部件,由控制器,运算器,寄存器组和辅助部件组成。

微机原理,汇编语言及接口技术第2版课后习题答案

第1章作业答案1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?把CPU(运算器和控制器)用大规模集成电路技术做在一个芯片上,即为微处理器。

微处理器加上一定数量的存储器和外部设备(或外部设备的接口)构成了微型计算机。

微型计算机与管理、维护计算机硬件以及支持应用的软件相结合就形成了微型计算机系统。

1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?CPU主要由起运算器作用的算术逻辑单元、起控制器作用的指令寄存器、指令译码器、可编程逻辑阵列和标志寄存器等一些寄存器组成。

其主要功能是进行算术和逻辑运算以及控制计算机按照程序的规定自动运行。

1.3微型计算机采用总线结构有什么优点?采用总线结构,扩大了数据传送的灵活性、减少了连线。

而且总线可以标准化,易于兼容和工业化生产。

1.4数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?数据总线是双向的(数据既可以读也可以写),而地址总线是单向的。

8086CPU为了减少芯片的引脚数量,采用数据与地址线复用,既作数据总线也作为地址总线。

它们主要靠信号的时序来区分。

通常在读写数据时,总是先输出地址(指定要读或写数据的单元),过一段时间再读或写数据。

第2章作业答案2.1 IA-32结构微处理器直至Pentillm4,有哪几种?80386、30486、Pentium、Pentium Pro、PeruiumII、PentiumIII、Pentium4。

2.6IA-32结构微处理器有哪几种操作模式?IA一32结构支持3种操作模式:保护模式、实地址模式和系统管理模式。

操作模式确定哪些指令和结构特性是可以访问的。

2.8IA-32结构微处理器的地址空间如何形成?由段寄存器确定的段基地址与各种寻址方式确定的有效地址相加形成了线性地址。

若末启用分页机制,线性地址即为物理地址;若启用分页机制,则它把线性地址转为物理地址。

汇编与接口课后习题解答

第二章2.5 1M=220 因为最小的一个段的大小为16个字节(一个小段),所以最多有220/24=216(1) 0FFFFH:0 物理地址为 0FFFF0H(2) 40H:17H 物理地址为 400H+17H=417H(3) 2000H:4500H 物理地址为200000H+4500H=24500H(4) 0B821H:4567H 物理地址为 0B8210H+4567H=0BC777H2.9 (1) CX 16位 DL 8位 操作数宽度不一样(类型不一致)(2) IP 不能作为源操作数,也不能作为目的操作数(3) 立即数不能直接赋给段寄存器(4)段寄存器间不能直接赋值(5) 类型不一致,立即数300超过8位,不能赋给8位寄存器AL(6) 寄存器间接寻址方式不能使用sp 寄存器(7)+作为算术运算符,它的操作数为常量(8)20h 为立即数不能作为目的操作数2.12 (1) ADD DX, BX(2) ADD AL,BYTE PTR [BX+SI] 或ADD AL,BYTE PTR [BX][SI](3) ADD [BX+0B2H],CX(4)ADD WORD PTR [0520H],3412H(5)ADD AL,0A0H21203h 20100h 20101h 20102h 20103h 21201h 21201h 21202h2.16(1)1256H (2)20A1H+1256H+20000H=232F7H又[232F7H]=3280H所以EA=3280H 2.17(1)当AX=1E1EH时(2)当AX的D7和D0位不同时为0时(3)无符号数cx<64H时3.9 (1) 67h (2) 133h (3) 230h (4)41h (5)7654H3.11(1) my1b db 'Personal Computer'(2) my2b db 20(3) my3b db 14h(4)my4b db 00010100B(5) my5w dw 20 dup (?)(6) my6c equ 100(7)my7c = 'Personal Computer'3.14109h 10ah 113h114h100hAX=114HAX=6AX=13HAX=03H第9章9.36 低计数初值装入减一计数器clk 计数器计数器减为0时高 5 方式39.4(1)MOV DX, 207HMOV AL , 01010000BOUT DX, ALMOV DX, 205HMOV AL , 128OUT DX, AL(2)MOV DX, 207HMOV AL , 00110011BOUT DX, ALMOV DX, 204HMOV AX , 3000HOUT DX, ALMOV AL, AHOUT DX, AL(3)MOV DX , 207HMOV AL , 10110101BOUT DX, ALMOV DX, 206HMOV AX, 02F0HOUT DX, ALMOV AL, AHOUT DX, AL。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题1(教材P56)1.8086/8088微处理器地址总线有多少位?寻址范围是多少?答:20位 A0-A19。

寻址范围00000H-FFFFFH2.8086/8088微处理器分哪两部分?各部分主要由什么组成?答:执行单元EU和总线接口单元BIU。

EU包括:ALU、寄存器组、暂存器、标志寄存器、EU控制单元。

BIU包括:指令队列缓冲器、段寄存器及指令指针、总线地址加法器、总线控制逻辑。

4.8086/8088微处理器中有几个通用寄存器?几个变址寄存器?有几个指针寄存器?几个段寄存器?答:8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI。

2个变址寄存器SI、DI。

2个指针寄存器SP、BP。

DS、ES、SS、CS段地址寄存器。

5.8086/8088微处理器中有哪些标志位?它们的含义和作用如何?答:零标志位ZF、进位标志CF、溢出标志位OF、辅助进位标志位AF、奇偶标志位PF、符号标志位SF、方向标志位DF、中断允许标志位IF、跟踪标志TF。

6.试求出下列运算后的各个状态标志,说明进位标志和溢出标志的区别?1278H+3469H答:0001 0010 0111 1000+0011 0100 0110 10010100 0110 1110 0001ZF=0;SF=0;CF=0;OF=0;AF=1;PF=1。

54E3H-27A0H答:0101 0100 1110 0011+1101 1000 0110 0000(-27A0的补码)10010 1101 0100 0011ZF=0;SF=0;CF=1;OF=0;AF=0;PF=0。

3881H+3597H答:0011 1000 1000 0001+0011 0101 1001 01110110 1110 0001 1000ZF=0;SF=0;CF=0;OF=0;AF=0;PF=1。

01E3H-01E3H答:0000 0001 1110 0011+1111 1110 0001 1101(-01E3H的补码)10000 0000 0000 0000ZF=1;SF=0;CF=1;OF=0;AF=1;PF=1。

进位表示最高位产生进位。

溢出表示超出数的表示范围。

OF=Cn ○﹢Cn-18.什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?答:逻辑地址:产生实际地址的两个地址分量:首地址和偏移地址。

物理地址:内存单元地址。

用户在编写程序时只使用逻辑地址。

程序装到内存中使用物理地址。

物理地址可以通过逻辑地址求得。

9.设现行数据段位于存储器的B0000H到BFFFFH存储单元,DS段寄存器内容为多少?答:DS=B000H11.8086/8088微处理器工作在最小模式和最大模式时的主要特点是什么?有何区别?答:最小模式只有一个CPU不需要总线控制器。

最大模式有多个微处理器,必须要总线控制器来对总线控制权进行分配。

引脚MN/MX=1工作在最小模式。

MN/MX=0工作在最大模式。

13.80486地址总线宽度为多少?数据总线宽度为多少?答:80486地址总线宽度为32位(分成4个块,每个块为8位字长,块有A1,A0选择)有数据总线宽度为32位。

14.现有6个字节的数据分别为11H,22H,33H,44H,55H,66H,已知它们在存储器中的物理地址为400A5H~400AAH,若当前的(DS)=4002H,请说明它们的偏移地址值。

如果从存储器中读出这些数据,至少需要访问几次存储器,各读出哪些数据?解:∵物理地址=(DS)×16+偏移地址,∴偏移地址=物理地址-(DS)×16=400A5H~400AAH-40020H=85H~8AH至少需要访问三次存储器,每次读出一个字,即2211H,4433H,6655H。

这六个数在存储器中的存放位置如图所示。

4002:00854002:00864002:00874002:00884002:00894002:008A习题2(教材P105)1.已知DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]~[20103H]依次存放12 24 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行后AX寄存器的内容。

(1) MOV AX, 1200H解:AX=1200H(3) MOV AX, [1200H]解:物理地址=D S×16+1200H=20000H+1200H=21200H,所以AX=4C2AH(5) MOV AX, [BX+1100H]解:物理地址=D S×16+BX+1100H=20000H+0100H+1100H=21200H ,所以AX=4C2AH(7) MOV AX, [BX][SI+1100H]解:物理地址=D S×16+BX+SI+1100H=20000H+0100H+0002H+1100H=21202H ,所以AX=65B7H (2) MOV AX, BX解:AX=0100H(4) MOV AX, [BX]解:物理地址=D S×16+BX=20000H+0100H=20100H,所以AX=2412H(6) MOV AX,[BX][SI]解:物理地址=D S×16+BX+SI=20000H+0100H+0002H=20102H,所以AX=7856H2.指出下列指令错误(1) MOV CX, DL答:数据类型不匹配,CX是16位,DL是8位。

(2) MOV IP, AX答:指令指针不能直接修改。

(3) MOV ES, 1234H答:段地址寄存器不能直接置数。

(4) MOV ES, DS答:段地址DS不能做源操作数。

(5) MOV AL, 300答:300大于255,AL是8位的,最多只能存255(6) MOV [SP], AX答:SP不能做间接寻址寄存器。

(7) MOV AX , BX+DI答:基址变址寻址必须打[]。

(8) MOV 20H, AH答:立即数不能做目的地址单元。

3.已知数字0~9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存放在于以TABEL为首地址(设为200H)的连续区域中。

对如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。

LEA BX,TABLE ;取表的首地址送BX,执行后(BX)=200HMOV AL,8 ;立即数8送AL,执行后,(AL)=8XLAT ;查表,将表首地址+8((BX)+(AL))所对应单元内容送AL,;执行后,(AL)=12H(8所对应的格雷码)4.什么是堆栈,它的工作原则是什么,它的基本操作有哪两个,对应哪两种指令? 答:堆栈是在内存中开的一个特殊的数据区,堆顶有堆栈指针SP 与SS 共同决定。

原则是:先进后出,两个操作:入栈、出栈,对应指令:PUSH(入栈)、POP(出栈)。

5.已知SS=FFA0H ,SP=00B0H ,画图说明执行下列指令序列时,堆栈区和SP 的内容如何变化? MOV AX , 8075H PUSH AX MOV AX , 0F79H PUSH AXPOP BX POP [BX]解:8.请分别用一条汇编语言指令完成如下功能:(1)把BX 寄存器和DX 寄存器的内容相加,结果存入DX 寄存器。

FFA0:00AE SP → FFA0:00AF FFA0:00B0FFA0:0000执行完MOV AX , 8075H PUSH AX 指令后SP=00AEHFFA0:00AC SP →FFA0:00AD FFA0:00AE FFA0:00AF FFA0:00B0FFA0:0000再执行完MOV AX , OF79H PUSH AX 指令后 SP=00ACHFFA0:00AE SP → FFA0:00AF FFA0:00B0FFA0:0000 再执行完POP BX 指令后SP=00AFHFFA0:00AE FFA0:00AFFFA0:00B0 SP →FFA0:0000再执行完POP [BX] 指令后 SP=00B0H解:ADD DX, BX(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送AL中。

解:ADD AL, [BX+SI] 或ADD AL, [BX][SI](3)用寄存器BX和02BH的寄存器相对寻址方式,把存储器的一个字和CX寄存器的内容相加,并把结果送回存储器中。

解:ADD [BX+02BH] ,CX 或ADD 02BH [BX] ,CX(4)把数0A0H与AL寄存器内容相加,并把结果送AL中。

解:ADD AL, 0A0H10.指出下列指令错误(1)XCHG [SI], 30H答:立即数不能作为单元地址来保存数据,所以交换指令中的两个操作数必须是地址操作数。

(2)POP CS答:CS不能作为寻址寄存器使用(3)SUB [SI], [DI]答:算术运算指令中的两个操作数不能同时都在内存中(4)PUSH AH答:PUSH指令中的操作数必须是16位操作数,AH是8位(5)ADC AX, DS答:DS不能做源操作数,(6)OUT DX, AH答:只能使用AL(当端口数据位是8位)或AX(端口数据位是16位)与端口交换数据(7)IN AL 3FCH答:端口地址大于255时,必须有DX寄存器间接寻址。

20.假设DS=2000H,BX=1256H,SI=528FH,位移量TABLE=20A1H,[232F7H]=3280H,[264E5H]=2450H,试问执行下列段内间接转移指令后,转移的目的地址是什么?(1) JMP BX(2) JMP TABLE[BX](3) JMP [BX][SI]解:(1)JMP BX,目标地址的偏移量在BX中,所以转移的目的地址是CS:1256H(也可以直接写成有效地址IP=1256H)。

(2) JMP TABLE[BX],目标地址的偏移量在存储器单元中,该存储器单元有效地址为(BX)+ TABLE中,所对应的物理地址=DS×16+(BX)+TABLE=20000H+1256H+20A1H=232F7H,该单元存放的内容为3280H,所以JMP TABLE[BX] 转移的目的地址是CS:3280H(也可以直接写成有效地址IP=3280H)(3)JMP [BX][SI] 目标地址的偏移量在存储器单元中,该存储器单元有效地址为(BX)+ (SI)中,所对应的物理地址=DS×16+(BX)+(SI)=20000H+1256H+528FH=264E5H,该单元存放的内容为4500H,所以JMP TABLE[BX] 转移的目的地址是CS:4500H(可以直接写成有效地址IP=4500H)。

相关文档
最新文档