Removed_第三章 8088汇编语言程序设计 微机原理 第2版 课后答案
80×86汇编语言程序设计课后习题参考答案
/view/555758b91a37f111f1855b3e.html附录:《IBM—PC汇编语言程序设计》习题参考答案第一章.习题1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
微机原理第二版答案
3.2设(DS)=6000H,(ES)=2000H,(SS)=1500H,(Si)=00A0H,(BX)=0800H,(BP)=1200H,数据变量VAR为0050H. 请分别指出下列各条指令源操作数的寻址方式?它的物理地址是多少?(1) MOV AX,BX (2) MOV DL,80H(3) MOV AX, VAR (4) MOV AX,VAR[BX][SI](5) MOV AL,‘B' (6) MOV DI, ES: [BX](7) MOV DX,[BP] (8) MOV BX,20H[BX]解: (1)寄存器寻址。
因源操作数是寄存器,故寄存器BX就是操作数的地址.(2)立即寻址。
操作数80H存放于代码段中指令码MOV之后。
(3)直接寻址。
(4)基址一变址一相对寻址.操作数的物理地址=(DS) × 16+(SI)+(BX)+VAR= 60000H+00A0H+0800H+0050H=608F0H(5)立即寻址(6)寄存器间接寻址.操作数的物理地址 = (ES) × 16+(BX)= 20000H+0800H = 20800H(7)寄存器间接寻址。
操作数的物理地址= (SS) × 16+(BP)= 15000H+1200H= 16200H(8)寄存器相对寻址.操作数的物理地址=(DS) × 16+(BX)+20H= 60000H+0800H+20H= 60820H3.3 假设(DS)= 212AH,(CS)= 0200H,(IP)= 1200H,(BX)= 0500H,位移量DATA=40H,(217A0H) =2300H,(217E0H)=0400H,(217E2H) =9000H 试确定下列转移指令的转移地址.(1) JMP BX(2) JMP WORD PTR[BX](3) JMP DWORD PTR[BX+DATA]解:转移指令分为段内转移和段间转移,根据其寻址方式的不同,又有段内的直接转移和间接转移,以及段间的直接转移和间接转移地址。
汇编语言程序设计课后习题答案(第二版 沈美明)(无删减)
首页入门学习程序员计算机考研计算机电子书下载硬件知识网络知识专业课程答案下载视频教程下载第一章作者:佚名来源:网络1.1 用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2 将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3 将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4 完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
第三章8088汇编语言程序设计微机原理第2版课后答案
第三章8088汇编语⾔程序设计微机原理第2版课后答案第三章 8088汇编语⾔程序设计本章的主要内容是汇编语⾔语句⾏的构成,源程序的结构,汇编语⾔程序设计⽅法。
3.1 重点与难点本章的学习重点是结构化程序设计思想,顺序、分⽀、循环结构的程序设计,⼦程序结构的设计与调⽤,中断指令的应⽤。
另外,汇编语⾔伪指令的使⽤、源程序的结构等也是必须掌握的。
3.1.1 汇编语⾔语句⾏的构成1.标记(1)标识符:由数字、字母和下划线组成,且不能以数字开头,最⼤长度不超过31个字符。
(2)保留字:汇编语⾔中保留下来的具有特殊⽤途的字串,如指令、伪指令、寄存器名等都是保留字。
保留字不可⽤作标识符。
(3)界符:程序或指令中两个部分的分隔符号。
汇编语⾔源程序中可⽤的界符:′〈〉;,:? $ () + - = &[] * / ·(4)常量:数字常量,可以使⽤不同的进制D、B、H、Q;字符串常量,由引号引起来的字符串,相当给出字符所对应的ASCII码串。
2.符号及其属性(1)寄存器:8086/8088 CPU的寄存器可以作为指令的操作数。
(2)变量:即内存单元的符号地址。
变量不能与保留字、段名重名。
它有三个属性:段属性,指变量所在段的段地址;偏移量,指变量所在段的起始地址到变量地址之间的字节数,即偏移(有效、逻辑)地址。
类型,指指变量具有的字节数,包括BYTE、WORD、DWORD、QWORD和TBYTE等。
(3)标号:即代码段中某条指令的符号地址,由编程者根据需要确定的。
标号不能与保留字重名,可使⽤字母、数字及下划线,但不允许⽤数字开头,字符个数不超过31个。
标号作为符号地址也有三个属性:段、偏移量和类型(NEAR、FAR)。
3.表达式表达式是作为语句的⼀个操作数,在汇编时⼀个表达式得到⼀个值。
(1)操作数数据——常数、符号常量;存储单元地址——常⽤符号地址表⽰。
(2)运算符算术运算符:+、-、*、/、MOD。
对地址的运算仅有+(加)、-(减)运算符。
《汇编语言微机原理及接口技术》(第2版)课后习题答案
第1章进制及码元1•进制转换129= 81H= 10000001B=201Q 298= 12AH= 100101010B=452Q 1000= 3E8H= 1111101000B= 1750Q 5DH= 1011101 B= 1350= 93 D 3E8H=1111101000 B= 17500= 1000 D3570=11101111 B= 0EF H= 239 D 3. 数据表示范围:一字节的无符号数表示范围为 0〜255,有符号数(补码)表示范围为-128 —+127。
一个字的无 符号数表示范围为 0〜65535,有符号数(补码)表示范围为—32768〜+32767。
N 位二进制数 的无符号数表示范围为 0〜(2N-1),有符号数(补码)表示范围为-2N -1〜(2曲-1).4.35H 代表的ASCII字符为M :,代表十六进制数时等价的十进制值为53_,代表压缩8421BCD 码等价的十进制值为 35_,代表非压缩8421BCD 码等价的十进制值为 5。
5. FFH 代表无符号数时等价的十进制值为一 1 ,代表反码有符号数时等价的十进制值为第2章微机硬件基础1 .计算机系统硬件的五大功能部件及其主要功能?答:硬件系统按功能模块分为运算器、控制器、存储器、输入设备、输出设备。
运算器主要完成算术运算、逻辑运算及移位运算,其中主要包括算术逻辑运算单元Arithmetic Logic Unit , ALU)和暂存数据(原始、中间、结果)的寄存器(Register , R)。
控制器实现对计算机部件的协调调度完成指令的分析执行,其中主要有程序计数器Program Counter , PC)或叫指令指针(Instruction Pointer , IP)、指令寄存器(Instruction register , IR)、指令译码器(Instruction Decoder , ID)、微操作命令发生器、时序发生器等。
微机原理第二版+田辉+课后答案
答:2 =1048576=1MB 习题1-1.微型计算机包括哪几个主要组成部分,各部分的基本功能是什么?答:微型计算机由CPU、存储器、输入/输出接口及系统总线组成。
CPU是微型计算机的核心部件,一般具有下列功能:进行算术和逻辑运算。
暂存少量数据。
对指令译码并执行指令所规定的操作。
与存储器和外设进行数据交换的能力。
提供整个系统所需要的定时和控制信号。
响应其他部件发出的中断请求;总线是计算机系统各功能模块间传递信息的公共通道,一般由总线控制器、总线发送器、总线接收器以及一组导线组成;存储器是用来存储数据、程序的部件;I/O接口是微型计算机的重要组成部件,在CPU 和外设之间起适配作用。
1-2.CPU 执行指令的工作过程。
答:取指令、执行指令。
指令执行的基本过程:(1)开始执行程序时,程序计数器中保存第一条指令的地址,指明当前将要执行的指令存放在存储器的哪个单元。
(2)控制器:将程序计数器中的地址送至地址寄存器MAR,并发出读命令。
存储器根据此地址取出一条指令,经过数据总线进入指令寄存器IR。
(3)指令译码器译码,控制逻辑阵列发操作命令,执行指令操作码规定的操作。
(4)修改程序计数器的内容。
1-3.果微处理器的地址总线为20 位,它的最大寻址空间为多少?201-4.处理器、微型计算机和微型计算机系统之间有什么关系?答:微处理器是微型计算机的核心部件。
微处理器配上存储器、输入/输出接口及相应的外设构成完整的微型计算机。
以微型计算机为主体,配上系统软件和外部设备以后,就构成了完整的微型计算机系统。
1-5.下面十进制数分别转换为二进制、八进制和十六进制数:128,65535,1024答:128,二进制:10000000B,八进制:200O,十六进制:80H65535,二进制:1111111111111111B,八进制:177777O,十六进制:FFFFH1024,二进制:10000000000B,八进制:2000O,十六进制:400H1-6.下面二进制数分别转换为十进制及十六进制数:1011.1010B,1111101.11 B答:1011.1010B,十进制:11.625,十六进制:B.AH1111101.11B,十进制:125.75,十六进制:7D.CH1-7.(5487)10=(0101010010000111)BCD=1010101101111 B若 CPU 的主时钟频率为 10MHz ,则一个时钟周期为10 s ,一个基本总线周期为 4× 1-8.设字长为 8 位,请写出下列数的原码、反码、补码和移码:15,-20,-27/32 答:[+15]原 =00001111, [+15]反 =00001111, [+15]补 =00001111, [+15]移 =10001111[-20]原 =10010100, [-20]反 =11101011, [-20]补 =11101100, [-20]移 =01101100[-27/32]原 =1.1101100, [-27/32]反 =1.0010011, [-27/32]补 =1.0010100,第 2 章 微型计算机系统的微处理器习 题2-1.086/8088 CPU 的功能结构由哪两部分组成?它们的主要功能是什么?答:8086/8088 CPU 的功能结构由以下两部分组成:总线接口单元BIU (Bus Interface Unit ), 执行部件EU (Execution Unit )。
微计算机原理(第2版)第三章课后习题答案解析讲课讲稿
微计算机原理(第2版)第三章课后习题答案解析讲课讲稿微计算机原理(第2版)第三章课后习题答案解析第三章 80x86 指令系统3-1 指令由操作码字段和操作数字段组成。
8086的指令长度在1~6字节范围。
3-2 分别指出下列指令中源操作数和目的操作数的寻址方式。
若是存储器寻址,使用表达式表示出EA=? PA=?(1) MOV SI, 2100H (2) MOV CX, DISP[BX] (3) MOV [SI], AX (4) ADC ZX, [BX][SI] (5) AND AX, DX (6) MOV AX,[BX+10H](7) MOV AX, ES:[BX] (8)MOV AX, [BX+SI+20H] (9) MOV [BP], CX (10) PUSH DS解:3-3 已知8086中一些寄存器的内容和一些存储器单元的内容如图3-1所示,试指出下列各条指令执行后,AX中的内容。
(1)MOV AX, 2010H (2) MOV AX, BX (3) MOV AX, [1200H](4)MOV AX, [BX] (5) MOV AX, 1100H[BX] (6) MOV AX, [BX][SI](7)MOV AX, 1100H[BX+SI] (8) MOVLEA AX, [SI]解:(1)(AX)=2010H (2)(AX)=0100H (3)(AX)=4C2AH (4)(AX)=3412H(5)(AX)=4C2AH (6)(AX)=7856H (7)(AX)=65B7H (8)(AX)=0002H图3-1 3-4 已知(AX)=2040H,(DX)=380H,端口(PORT)=(80H)=1FH,(PORT+1)=45H,执行下列指令后,指出结果等于多少?解:(1)OUT DX, AL (0380H)=40H(2)OUT DX, AX (380H)=40H (381h)=20H(3)IN AL, PORT (AL)=1FH(4)IN AX, 80H (AX)=451FH(5)OUT PORT1, AL (PORT1)=40H(6)OUT PORT1, AX (PORT1)=2040H3-5 已知:(SS)=0A2F0H,(SP)=00C0H,(AX)=8B31H,(CX)=0F213,试画出下列指令执行到位置1和位置2时堆栈区和SP指针内容的变化示意图。
汇编语言程序设计(第二版)课后习题答案
汇编语言程序设计(第二版)课后习题答案第二章1.解答:有256个2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元E51E3C2A3.解答:30022H字节单元内容:ABH30024H字节单元内容:EFH30021H字单元内容:AB34H30022H字单元内容:CDABH4.解答:这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址5.解答:CS+IP第一个字的物理地址为:0AAA40H6.解答:条件标志OF,SF,ZF,CF,的值依次为:0,0,0,07.下列操作可使用那些寄存器?(1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH,AL等(2)循环计数CX(3)乘法和除法DX,AX,AH,AL(4)保存段地址CS,DS,ES,SS(5)表示运算结果为O FLAGS(6)将要执行的指令地址IP(7)将要从堆栈取出数据的地址BP,SP,SS8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP9.一一对应;5--A4--B2--C3--D12--E9--F11--G10--H13--I8--J7--K6---L1--M15--N14--O第三章1.(1)立即寻址没有(2)直接寻址7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址637DH(5)使用BX的寄存器相对寻址0D5B4H(6)基址变址寻址8E18H(7)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。
(1)ADD DX,BX(2)ADD AL,[BX][SI](3)ADD[BX][0B2H],CX(4)MOV AX,2A59H ADD[0524H],AX(5)ADD AL,0B5H3.(1)寄存器间接寻址MOV BX,OFFSET[BLOCK][0AH]MOV DX,[BX](2)寄存器相对寻址MOV SI,OAHMOV DX,[BLOCK][SI](3)基址变址寻址MOV BX,BLOCKMOV SI,OAHMOV DX,[BX][SI]4.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(2 1200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。
微机原理,汇编语言及接口技术第2版课后习题答案
(l)源操作数为立即寻址,目的操作数为寄存器寻址。 (2)源操作数为变址寄存器加位移量寻址,目的操作数为寄存器寻址。 (3)源操作数为基址加变址寻址,目的操作数为寄存器寻址。 (4)源操作数和目的操作数都为寄存器寻址。 (5)源操作数为寄存器寻址,目的操作数为寄存器间接寻址。 (6)为堆栈操作。 3.2 试述指令 MOVAX,2000H 和 MOV AX,DSz[2000H]的区别。 解:前一条指令是立即寻址,即把立即数 2000H 传送至寄存器 AX。后一条指令 是直接寻址,是把数据(DS)段中的地址为 200OH 单元的内容传送至寄存器 AX。 3.3 写出以下指令中内存操作数的所在地址。 (1)MOV AL, [BX+10] (2)MOV [BP+10], AX (3)INC BYTEPTR[SI 十 5] (4)MOV DL, ES:[BX+SI] (5)MOV BX,[BP+DI+2]
第 3 章 作 业答案 3.1 分别指出下列指令中的源操作数和目的操作数的寻址方式。
(1)MOV SI, 30O (2)MOV CX, DATA[DI〕 (3)ADD AX, [BX][SI] (4)AND AX, CX (5)MOV[BP], AX (6)PUSHF
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,通力根1保过据护管生高线产中敷工资设艺料技高试术中卷0资不配料仅置试可技卷以术要解是求决指,吊机对顶组电层在气配进设置行备不继进规电行范保空高护载中高与资中带料资负试料荷卷试下问卷高题总中2体2资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况1卷中下安,与全要过,加度并强工且看作尽护下可1都关能可于地以管缩正路小常高故工中障作资高;料中对试资于卷料继连试电接卷保管破护口坏进处范行理围整高,核中或对资者定料对值试某,卷些审弯异核扁常与度高校固中对定资图盒料纸位试,置卷编.工保写况护复进层杂行防设自腐备动跨与处接装理地置,线高尤弯中其曲资要半料避径试免标卷错高调误等试高,方中要案资求,料技编试术写5、卷交重电保底要气护。设设装管备备置线4高、调动敷中电试作设资气高,技料课中并3术试、件资且中卷管中料拒包试路调试绝含验敷试卷动线方设技作槽案技术,、以术来管及避架系免等统不多启必项动要方高式案中,;资为对料解整试决套卷高启突中动然语过停文程机电中。气高因课中此件资,中料电管试力壁卷高薄电中、气资接设料口备试不进卷严行保等调护问试装题工置,作调合并试理且技利进术用行,管过要线关求敷运电设行力技高保术中护。资装线料置缆试做敷卷到设技准原术确则指灵:导活在。。分对对线于于盒调差处试动,过保当程护不中装同高置电中高压资中回料资路试料交卷试叉技卷时术调,问试应题技采,术用作是金为指属调发隔试电板人机进员一行,变隔需压开要器处在组理事在;前发同掌生一握内线图部槽 纸故内资障,料时强、,电设需回备要路制进须造行同厂外时家部切出电断具源习高高题中中电资资源料料,试试线卷卷缆试切敷验除设报从完告而毕与采,相用要关高进技中行术资检资料查料试和,卷检并主测且要处了保理解护。现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
汇编语言第二版答案
检测点1.1(第8页)----------------------(1) 13(2) 1024,0,1023(3) 8192,1024(4) 2^30,2^20,2^10(5) 64,1,16,4(6) 1,1,2,2,4(7) 512,256(8) 二进制注意:1.第4题中的符号'^'指求幂运算(如: 2^30指2的30次方)(1)写出每条汇编指令执行后相关寄存器中的值。
第一空:F4A3H第二空:31A3H第三空:3123H第四空:6246H第五空:826CH第六空:6246H第七空:826CH第八空:04D8H第九空:0482H第十空:6C82H第十一空:D882H第十二空:D888H第十三空:D810H第十四空:6246H(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
解答如下:mov ax,2add ax,axadd ax,axadd ax,ax检测点2.2(第23页)----------------------(1)00010H,1000FH(2)1001H,2000H第2题说明:因为段的起始地址要为16的倍数。
所以当段地址小于1001H或大于2000H时CPU都无法寻到。
检测点2.3(第33页)----------------------答:CPU修改了4次IP的值。
情况如下:第1次:执行完mov ax,bx后第2次:执行完sub ax,ax后第3次:读入jmp ax后第4次:执行完jmp ax后最后IP的值为0实验1 查看CPU和内存,用机器指令和汇编指令编程(第33页)-----------------------------------------------------1.预备知识:Debug的使用<此部分略>2.实验任务(第43页)(1)<此部分略>(2)<此部分略>(3)通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为'/'的格式]存储在内存ffff:0005~ffff:000C(共8个字节单元中)处。
汇编语言程序设计(第二版)课后题答案
4.1、判断下列标识符的合法性。
1)、code 合法2)、Data 合法3)、ABCDH 合法4)、1abcH 不5)、eax 不6)、01 合法7)、A?@ 合法8)、www@zsu 合法9)、***********.cn不10)、AX$DX 合法11)、_BX 合法12)、CX 不4.2、按下面要求写出相应的数据定义语句(未指定变量名的,可任意指定或省缺)。
1)、定义一个字节区域,第一个字节的值为20,其后跟20个初值为0的连续字节;DB 20,20 DUP(0)2)、定义一个以0为结束符的字符串,其初值为:The course is easy;DB “The course is easy”,03)、定义一个以'$'为结束符的字符串,该串中含有换行符和回车符;DB 0D,0A,”$”4)、定义100个字,其初值为0;DW 100 DUP(0)5)、从一个偶地址开始定义一个字变量word;EVENWORD DW ?6)、先定义一个字符串String,其偏移量指定为10,其初值为"ABCDEF",然后再定义3个字类型的数组Data,要求String和Data的偏移量相同;ORG 10STRING DB "ABCDEF"ORG 10DATA DW 3 DUP(?)7)、定义一个字符串String,其初值为"12345678",再定义4个字类型的数组Data,要求String和Data共享同一片内存单元;STRING DB "12345678"ORG $-8DATA DW 4 DUP (?)4.3、把下列C语言的变量定义语句改写成与之等价的汇编语言语句。
1)、char ch1, ch2[3], ch3[]="Are you ready?", ch4='Q';CH1 DB ?CH2 DB 3 DUP (?)CH3 DB "Are you ready?",0CH4 DB “Q”2)、int w1, w2[5], w3=0x1234, w4[]={90, 89, 432, 344};W1 DW ?W2 DW 5 DUP (?)W3 DW 1234HW4 DW 90,89,432,3443)、long int d1=1234, d2, d3[10], d4[]={1, 2, 3, 4, 5, 6};D1 DD 1234D2 DD ?D3 DD 10 DUP(?)D3 DD 1,2,3,4,5,64.4、假设4.3题中三组变量在内存中是连续存放的,且变量ch1的偏移量是20H,试求出其它每个变量的偏移量。
微机原理与接口技术第二版课后习题答案完整版
习题11.什么就是汇编语言,汇编程序,与机器语言?答:机器语言就是用二进制代码表示的计算机能直接识别与执行的一种机器指令的集合。
汇编语言就是面向及其的程序设计语言。
在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。
这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。
2.微型计算机系统有哪些特点?具有这些特点的根本原因就是什么?答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。
这些特点就是由于微型计算机广泛采用了集成度相当高的器件与部件,建立在微细加工工艺基础之上。
3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。
答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备与输出设备组成。
“存储程序控制”的概念可简要地概括为以下几点:①计算机(指硬件)应由运算器、存储器、控制器与输入/输出设备五大基本部件组成。
②在计算机内部采用二进制来表示程序与数据。
③将编好的程序与原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就就是存储程序的基本含义。
④五大部件以运算器为中心进行组织。
4.请说明微型计算机系统的工作过程。
答:微型计算机的基本工作过程就是执行程序的过程,也就就是CPU自动从程序存放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型与操作对象,执行指令规定的相关操作。
如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。
5.试说明微处理器字长的意义。
答:微型机的字长就是指由微处理器内部一次可以并行处理二进制代码的位数。
它决定着计算机内部寄存器、ALU与数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模与造价。
汇编语言程序设计(第二版)课后习题答案-精品资料
汇编语言程序设计(第二版)课后习题答案第二章1.解答:有256个2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元E51E3C2A3.解答:30022H字节单元内容:ABH30024H字节单元内容:EFH30021H字单元内容:AB34H30022H字单元内容:CDABH4.解答:这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址5.解答:CS+IP第一个字的物理地址为:0AAA40H6.解答:条件标志OF,SF,ZF,CF,的值依次为:0,0,0,07.下列操作可使用那些寄存器?(1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH,AL等(2)循环计数CX(3)乘法和除法DX,AX,AH,AL(4)保存段地址CS,DS,ES,SS(5)表示运算结果为O FLAGS(6)将要执行的指令地址IP(7)将要从堆栈取出数据的地址BP,SP,SS8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP9.一一对应;5--A4--B2--C3--D12--E9--F11--G10--H13--I8--J7--K6---L1--M15--N14--O第三章1.(1)立即寻址没有(2)直接寻址7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址637DH(5)使用BX的寄存器相对寻址0D5B4H(6)基址变址寻址8E18H(7)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。
(1)ADD DX,BX(2)ADDAL,[BX][SI](3)ADD[BX][0B2H],CX(4)MOV AX,2A59H ADD[0524H],AX(5)ADDAL,0B5H3.(1)寄存器间接寻址MOVBX,OFFSET[BLOCK][0AH]MOV DX,[BX](2)寄存器相对寻址MOV SI,OAHMOVDX,[BLOCK][SI](3)基址变址寻址MOVBX,BLOCKMOVSI,OAHMOVDX,[BX][SI]4.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。
微机原理与接口技术(第二版)习题答案-第三章
习题31.假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量V AL的偏移地址为0050H,请指出下列指令原操作数是什么寻址方式,其物理地址是多少?(1)MOV AX, 0ABH (2) MOV AX, [100H](3) MOV AX, V AL (4) MOV BX, [SI](5) MOV AL, V AL[BX] (6) MOV CL, [BX][SI](7) MOV V AL[SI], BX (8) MOV [BP][SI], 100答:(1) 立即数寻址,无物理地址(2) 直接寻址,物理地址=2000H×10H+100H=20100H(3) 直接寻址,物理地址=2000H×10H+0050H=20050H(4) 寄存器间接寻址,物理地址=2000H×10H+00A0=200A0H(5) 相对寄存器寻址,物理地址=2000H×10H+(0050+0100H)=20150H(6) 基址加变寻址,物理地址=2000H×10H+(0100H+00A0H)=201A0H(7) 寄存器寻址,无物理地址(8) 立即数寻址,无物理地址2.已知(SS)=0FFA0H,(SP)=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图。
答:“8057H”进栈,则SP自动从00B0H指向00B2H,“0F79H”进栈,则SP 自动从00B2H指向00B4H;执行一条POP指令,“0F79H”被弹出栈,SP从00B4H 指向00B2H。
图略。
3.设有关寄存器及存储单元的内容如下:(DS)=2000H, (BX)=0100H, (AX)=1200H, (SI)=0002H, (20100H)=12H, (20101H)=34H, (20102H)=56H, (20103H)=78H, (21200H)=2AH, (21201H)=4CH, (21202H)=0B7H, (21203H)=65H.试说明下列各条指令单独执行后相关寄存器或存储单元的内容。
微机原理__课后答案
1.8086/8088 CPU分为哪两个部分?如何协调工作?
答:EU是执行部件,主要的功能是执行指令和形成有效地址。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据,主要功能是形成实际地址、预取指令和存取操作数。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。
2.Байду номын сангаас086/8088 CPU的地址总线有多少位?其寻址范围是多少?
答:8086/8088 CPU的地址总线共20位,最大可寻址1MB空间。
3.8086/8088 CPU使用的存储器为什么要分段?怎么分段?
答:8086/8088为16位CPU,其内部的ALU、相关的地址寄存器(如SP、IP以及BX、BP、SI、DI)等都是16位的,因而对存储器地址的处理也只能是16位操作,即8086/8088的直接寻址能力在64KB范围内。而实际上8086/8088有20条地址线,它的最大寻址空间为1MB。这就产生了一个矛盾,即如何用16位的地址寄存器去表示一个20位的存储器物理地址?
微机原理__课后答案
第3章微处理器及其结构
一、填空题
1.8086/8088 CPU执行指令中所需操作数地址由EU计算出16位偏移量部分送BIU,由BIU最后形成一个20位的内存单元物理地址。
2.8086/8088 CPU在总线周期的T1时刻,用A19/S6~A16/S3输出20位地址信息的最高4位,而在其他时钟周期,则输出状态信息。
5.8086/8088系统中,可以有64K个段起始地址,任意相邻的两个段起始地址相距16个存储单元。
6.用段基值及偏移量来指明内存单元地址的方式称为逻辑地址。
16/32位微机原理、汇编语言及接口技术第2版-第三章-习题答案
16/32位微机原理、汇编语⾔及接⼝技术第2版-第三章-习题答案第3章汇编语⾔程序设计(习题3)3.16 解:mov ah,1 ;只允许输⼊⼩写字母int 21hsub al,20h ;转换为⼤写字母mov dl,almov ah,2int 21h ;显⽰3.17 解:mov bx,offset LEDtablemov al,lednumxlat3.18 解:mov ax, bufXcmp ax, bufYjae donemov ax, bufYdone: mov bufZ, ax3.19 解:.model small.stack.databufX dw -7signX db ?.code.startupcmp bufX,0 ;test bufX,80hjl next ;jnz nextmov signX,0jmp donenext: mov signX,-1end3.20 解:mov dl,’2’mov ax,bufXcmp ax,bufYje next1dec dlnext1: cmp ax,bufZje next2dec dlnext2: mov ah,2int 21h3.21 解:;代码段mov al,numbermov bx,0 ;BX←记录为1的位数restart: cmp al,0 ;AL=0结束jz doneagain: shr al,1 ;最低位右移进⼊CFjc next ;为1,转移inc bx ;不为1,继续jmp againnext: push axpush bxshl bx,1 ;位数乘以2(偏移地址要⽤2个字节单元)jmp addrs[bx] ;间接转移:IP←[table+BX];以下是各个处理程序段fun0: mov dl,'0'jmp dispfun1: mov dl,'1'jmp dispfun2: mov dl,'2'jmp dispfun3: mov dl,'3'fun4: mov dl,'4'jmp dispfun5: mov dl,'5'jmp dispfun6: mov dl,'6'jmp dispfun7: mov dl,'7'jmp disp;disp: mov ah,2 ;显⽰⼀个字符int 21hpop bxpop axjmp restartdone: …3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存⼊字节变量SUM中(不考虑溢出和进位)。
汇编语言程序设计第三章习题答案
第三章答案:3.1(1)立即数寻址代码段(2)寄存器寻址数据段(3)寄存器间址数据段(4)寄存器间址数据段(5)直接寻址数据段(6)直接寻址数据段(7)基址寻址堆栈段(8)直接寻址代码段(9)寄存器寻址数据段(10)变址寻址数据段(11)基址变址寻址数据段(12)基址变址寻址堆栈段(13)基址变址寻址堆栈段(14)基址变址寻址堆栈段3.2(1)直接寻址30000H+0ABCH=30ABCH(2)寄存器寻址(3)直接寻址30000H+2000H=32000H(4)基址寻址30000H+0100H+2000H=32100H(5)寄存器间址30000H+0100H=30100H(6)寄存器间址30000H+00A0H=300A0H(7)寄存器间址20000+0010H=20010H(8)基址变址寻址20000H+0010H+2000H+00A0H=220B0H (9)基址寻址30000H+0100H-40H=300C0H(10)变址寻址30000H+0040H+00A0H=300E0H(11)基址变址寻址30000H+0100H+0100H-0040H=301C0H (12)基址变址寻址20000H+00A0H+0100H+0010H=201B0H (13)变址寻址30000H+2000H+0002H=32002H(14)基址变址寻址41000H+2000H+0100H+0002H=43102H 3.3第一种:MOV AX,[02C0H]第二种:MOV AX,[BP]第三种:MOV AX,0240H[BX]第四种:MOV AX,0100H[DI]第五种:MOV AX,0220H[SI](只要物理地址为095C0H即可)3.4(1)错,类型不匹配(2)错,类型二义性(3)对(4)错,立即数不能直接送入段寄存器(5)错,字节单元无法存放PUSH的值(6)对(7)对(8)错,不能把数据从段寄存器传入段寄存器(9)错,源操作数与目的操作数不能同时为存储器操作数(10)错,操作数类型二义性(11)错,XCHG指令的两个操作数都不能为立即数(12)错,类型不匹配(13)错,操作数类型二义性(14)错,RCL移位不为1时,必须用CL寄存器来操作(15)错,不能传送入段寄存器CS(16)错,目的操作数不能为立即数(17)错,格式不正确(18)错,变址寄存器不能使用寄存器BP(19)错,基址寄存器不能使用寄存器SI(20)错,目的操作数必须为通用寄存器3.5(1)(CL)=0F6H(2)(1E4F6)=5678H(3)(BX)=0056H (AX)=1E40H(4)(SI)=00F6H (DS)=1E40H (1E4F6H)=0024H (5)(CX)=00F6H (AX)=5678H (09226H)=1234H 3.6MOV是数据传送指令,LEA是取地址指令。
微机原理与接口技术(第二版)课后习题答案完整版
习题11.什么是汇编说话,汇编程序,和机械说话?答:机械说话是用二进制代码暗示的盘算机能直接辨认和履行的一种机械指令的聚集.汇编说话是面向及其的程序设计说话.在汇编说话中,用助记符代替操纵码,用地址符号或标号代替地址码.这种用符号代替机械说话的二进制码,就把机械说话编程了汇编说话.运用汇编说话编写的程序,机械不克不及直接辨认,要由一种程序将汇编说话翻译成机械说话,这种起翻译感化的程序叫汇编程序.2.微型盘算机体系有哪些特色?具有这些特色的根起源基本因是什么?答:微型盘算机的特色:功效强,靠得住性高,价钱低廉,顺应性强.体系设计灵巧,周期短.奏效快,体积小.重量轻.耗电省,保护便利.这些特色是因为微型盘算机普遍采取了集成度相当高的器件和部件,树立在微细加工工艺基本之上.3.微型盘算机体系由哪些功效部件构成?试解释“存储程序掌握”的概念.答:微型盘算机体系的硬件重要由运算器.掌握器.存储器.输入装备和输出装备构成.“存储程序掌握”的概念可扼要地归纳综合为以下几点:①盘算机(指硬件)应由运算器.存储器.掌握器和输入/输出装备五大根本部件构成.②在盘算机内部采取二进制来暗示程序和数据.③将编好的程序和原始数据事先存入存储器中,然后再启动盘算机工作,使盘算机在不须要人工干涉的情形下,主动.高速的从存储器中掏出指令加以履行,这就是存储程序的根本寄义.④五大部件以运算器为中间进行组织.4.请解释微型盘算机体系的工作进程.答:微型盘算机的根本工作进程是履行程序的进程,也就是CPU主动从程序存放的第1个存储单元起,慢慢掏出指令.剖析指令,并根据指令划定的操纵类型和操纵对象,履行指令划定的相干操纵.如斯反复,周而复始,直至履行完程序的所有指令,从而实现程序的根本功效.5.试解释微处理器字长的意义.答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数.它决议着盘算机内部存放器.ALU和数据总线的位数,反应了一台盘算机的盘算精度,直接影响着机械的硬件范围和造价.盘算机的字长越大,其机能越优胜.在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快.6.微机体系中采取的总线构造有几种类型?各有什么特色?答:微机主板经常运用总线有体系总线.I/O总线.ISA总线.IPCI 总线.AGP总线.IEEE1394总线.USB总线等类型.7.将下列十进制数转换成二进制数.八进制数.十六进制数.①()10=()2=()8=()16②()10=()2=()8=()16③()10=()2=()8=()168.将下列二进制数转换成十进制数.①()2=()10②()2=()10③()2=()109.将下列十进制数转换成8421BCD码.① 2006=(0010 0000 0000 0110)BCD② 123.456=(0001 0010 0011.0100 0101 0110)BCD10.求下列带符号十进制数的8位基2码补码.① [+127]补=01111111② [-1]补=11111111③ [-128]补=10000000④[+1]补=0000000111.求下列带符号十进制数的16位基2码补码.① [+655]补= 0000001010001111② [-1]补③ [-3212]补④[+100]补=0000000001100100习题 21.8086 CPU在内部构造上由哪几部分构成?各部分的功效是什么?答:8086 CPU内部由两大自力功效部件构成,分离是履行部件和总线接口部件.履行部件负责进行所有指令的解释和履行,同时治理有关的存放器.总线接口部件是CPU在存储器和I/O装备之间的接口部件,负责对全体引脚的操纵.2.简述8086 CPU的存放器组织.答:8086 CPU内部共有14个16位存放器,按用处可分为数据存放器,段存放器,地址指针与变址存放器和掌握存放器.数据存放器包含累加器,基址存放器,计数器,和数据存放器.段存放器用来存放各分段的逻辑段基值,并指导当前正在运用的4个逻辑段.地址指针与变址存放器一般用来存放主存地址的段内偏移地址,用于介入地址运算.掌握存放器包含指令存放器和标识存放器.3.试述8086 CPU标记存放器列位的寄义与感化.答:标记存放器是16位的存放器,但现实上8086只用到9位,个中的6位是状况标识位,3位是掌握标识位.状况标记位分离是CF,PF,AF,ZF,SF,和OF;掌握标记位包含DF,IF,TF.CF:进位标记位.算数运算指令履行后,若运算成果的最高位产生进位或借位,则CF=1,不然CF=0.PF:奇偶标记位.反响盘算成果中1的个数是偶数照样奇数.若运算成果的低8位中含有偶数个1,则PF=1;不然PF=0.AF:帮助进位标记.算数运算指令履行后,若运算成果的低4位向高4位产生进位或借位,则AF=1;不然AF=0.ZF:零标记位.若指令运算成果为0,则ZF=1;不然ZF=0.SF:符号标记位.它与运算成果最高位雷同.OF:溢出标记位.当补码运算有溢出时,OF=1;不然OF=0.DF:偏向标记位.用于串操纵指令,指令字符串处理时的偏向.IF:中止许可标记位.用来掌握8086是否许可吸收外部中止请求.TF:单步标记位.它是为调试程序而设定的陷阱掌握位.4.8086 CPU状况标记和掌握标记有何不合?程序中是如何运用这两类标识的?8086的状况标记和掌握标识分离有哪些?答:状况标记位反响了当前运算和操纵成果的状况前提,可作为程序掌握转移与否的根据.它们分离是CF,PF,AF,ZF,SF,和OF.掌握标记位用来掌握CPU 的操纵,由指令进行置位和复位,掌握标记位包含DF,IF,TF.5.将1001 1100和1110 0101相加后,标识存放器中CF, PF, AF, ZF, SF, OF各为何值?答:CF=1,PF=1,AF=1,ZF=0,SF=1,OF=06.什么是存储器的物理地址和逻辑地址?在8086体系中,若何由逻辑地址盘算物理地址?答:逻辑地址是思维性的暗示,由段地址和偏移地址结合暗示的地址类型叫逻辑地址.物理地址是真实消失的独一地址,指的是存储器中各个单元的单元号.在8086体系中,物理地址=段地址×10H+偏移地址7.段存放器CS=1200H,指令指针存放器IP=4000H,此时,指令的物理地址为若干?指向这一地址的CS指和IP值是独一的吗?答:此指令的物理地址=1200H×10H+4000H=16000H 并且指向这一物理地址的CS值和IP值其实不是独一的.8.在8086体系中,逻辑地址FFFF:0001,00A2:37F和B800:173F的物理地址分离是若干?答:9.在8086体系中,从物理地址388H开端次序存放下列3个双字节的数据651AH,D761H和007BH,请问物理地址388H,389H,38AH,38BH,38CH和38DH 6个单元平分离是什么数据?答:(388H)=1AH,(389H)=65H,(38AH)=61H,(38BH)=DTH,(38CH)=7BH,(38DH)=00H10.8086微处理器有哪几种工作模式?各有什么特色?答:8086微处理器有最大和最小工作模式.在最小模式下:8086 CPU直接产生全体总线掌握旌旗灯号(DT/R,DEN,ALE,M/IO)和敕令输出旌旗灯号(RD,WR,INTA)并提出请求拜访总线的逻辑旌旗灯号HOLD,HLDA.在最大工作模式下,必须设置装备摆设8288总线掌握器,并且根据8086供给的状况旌旗灯号S2,S1,S0,输出读写掌握敕令,可以供给灵巧多变的体系设置装备摆设,以实现最佳的体系机能.11.简述8086引脚旌旗灯号中M/IO,DT/R,RD,WR,ALE,DEN和BHE的感化.答:M/IO:输出旌旗灯号,高电日常平凡,暗示CPU与存储器之间数据传输;低电日常平凡,暗示CPU与I/O装备之间数据传输.DT/R:掌握其数据传输偏向的旌旗灯号.DT/R=1时,进行数据发送;DT/R=0时,进行数据吸收.RD:CPU的读旌旗灯号,RD=0时,暗示8086为存储口或I/O端口读操纵.WR:CPU的写旌旗灯号,WR =0时,暗示8086为存储口或I/O端口写操纵.ALE:地址存锁旌旗灯号,在T1能时刻有效.DEN:数据选通讯号,当DEN有效时,暗示许可传输.BHE:数据总线许可旌旗灯号,与A0组合运用,暗示是否拜访奇地址字节.12.简述8086读总线周期和写总线周期和引脚上的旌旗灯号动尖态变更进程.8086的读周期时序和写周期时序的差别有哪些?答:在8086读周期内,有关总线旌旗灯号的变更如下:①M/IO:在全部读周期保持有效,当进行存储器读操纵时,M/IO为高电平;当进行I/O端口读操纵时,M/IO为低电平.②A19/S6~A16/S3:在T1时代,输出CPU要读取的存储单元或I/O端口的地址高4位.T2~T4时代输出状况信息S6-S3.③BHE/S7:在T1时代,输出BHE有效旌旗灯号(BHE为低电平),暗示高8位数据总线上的信息可以运用,BHE旌旗灯号平日作为奇地址存储体的体选旌旗灯号(偶地址存储体的体选旌旗灯号是最低地址位A0).T2—T4时代输出高电平.④AD l5~AD0:在T1时代,输出CPU要读取的存储单元或I/O端口的地址A15~A0.T2时代为高阻态,T3~T4时代,存储单元或I/O端口将数据奉上数据总线.CPU从AD l5~AD0上吸收数据.⑤ALE:在T1时代地址锁存有效旌旗灯号,为一正脉冲,体系中的地址锁存器恰是运用该脉冲的降低沿来锁存A19/S6~A16/S3,AD l5~AD0中的20位地址信息以及BHE.⑥RD:T2时代输出低电平送到被选中的存储器或I/O接口,留意,只有被地址旌旗灯号选中的存储单元或I/O端口,才会被RD旌旗灯号从中读出数据(数据奉上数据总线AD l5~AD0).⑦DT/R:在全部总线周期内保持低电平,暗示本总线周期为读周期,在接稀有据总线收发器的体系中,用来掌握数据传输偏向.⑧DEN:在T2~T3时代输出有效低电平,暗示数据有效,在接稀有据总线收发器的体系中,用来实现数据的选通.总线写操纵的时序与读操纵时序类似,其不合处在于:①AD l5~AD0:在T2~T4时代奉上欲输出的的数据,而无高阻态.②W R:从T2~T4,W R引脚输出有效低电平,该旌旗灯号送到所有的存储器和I/O接口.留意,只有被地址旌旗灯号选中的存储单元或I/O端谈锋会被W R旌旗灯号写入数据.③DT/R:在全部总线周期内保持高电平,暗示本总线周期为写周期,在接稀有据总线收发器的体系中,用来掌握数据传输偏向.习题31.假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量V AL的偏移地址为0050H,请指出下列指令原操纵数是什么寻址方法,其物理地址是若干?(1)MOV AX, 0ABH (2) MOV AX, [100H](3) MOV AX, V AL (4) MOV BX, [SI](5) MOV AL, V AL[BX] (6) MOV CL, [BX][SI](7) MOV V AL[SI], BX (8) MOV [BP][SI], 100答:(1) 立刻数寻址,无物理地址(2) 直接寻址,物理地址=2000H×10H+100H=20100H(3) 直接寻址,物理地址=2000H×10H+0050H=20050H(4) 存放器间接寻址,物理地址=2000H×10H+00A0=200A0H(5) 相对存放器寻址,物理地址=2000H×10H+(0050+0100H)=20150H(6) 基址加变寻址,物理地址=2000H×10H+(0100H+00A0H)=201A0H(7) 存放器寻址,无物理地址(8) 立刻数寻址,无物理地址2.已知(SS)=0FFA0H,(SP)=00B0H,先履行两条把8057H和0F79H分离进栈的PUSH指令,再履行一条POP指令,试画出客栈区和SP内容变更的进程示意图.答:“8057H”进栈,则SP主动从00B0H指向00B2H,“0F79H”进栈,则SP主动从00B2H指向00B4H;履行一条POP指令,“0F79H”被弹出栈,SP从00B4H指向00B2H.图略.3.设有关存放器及存储单元的内容如下:(DS)=2000H, (BX)=0100H, (AX)=1200H, (SI)=0002H, (20100H)=12H, (20101H)=34H, (20102H)=56H, (20103H)=78H, (21200H)=2AH, (21201H)=4CH, (21202H)=0B7H, (21203H)=65H.试解释下列各条指令单独履行后相干存放器或存储单元的内容.(1)MOV AX, 1800H (2) MOV AX, BX(3) MOV BX, [1200H] (4) MOV DX, 1100[BX](5) MOV [BX][SI], AL (6) MOV AX, 1100[BX][SI]答:(1) (AX)=1800H (2) (AX)=0100H (3) (BX)=4C2AH(4) (DX)=4C2AH (5) (20102H)=00H (6) (AX)=65B7H4. 写出实现下列盘算的指令序列.(1) Z=W+(X+Z) (2) Z=W-(X+6)-(R+9)答:(1) MOV AX, ZADD AX, XADD AX, WMOV Z, AX(2) MOV AX, WADD X, 6SUB AX, XADD R, 9SUB AX, RMOV Z, AX5. 若在数据段中从字节变量TABLE响应的单元开端存放了0~15的平方值,试写出包含XLAT指令的指令序列查找N(0~15)中的某个平方数.答:LEA BX, TABLEMOV AL, CLXLAT6. 写出实现下列盘算的指令序列.(1) Z=(W*X)/(R+6) (2) Z=((W-X)/5*Y)*2答:(1) MOV AX, WIMUL XADD R, 6IDIV RMOV Z, AX(2) MOV AX, WSUB AX, XMOV BL, 5IDIV BLCBWIMUL YMOV BX, 2IMUL BXMOV Z, AX7. 假定,CF=1, 试肯定下列各条指令单独履行后DX的值.(1) SHR DX, 1 (2) SHL DL, 1 (3) SAL DH, 1 (4) SAR DX, CL(5) ROR DX, CL (6) ROL DL, CL (7) RCR DL, 1 (8) RCL DX, CL答:(1) (DX)=0110 0100 1101 1100B (2) (DX)=1100 1001 0111 0010B(3) (DX)=1001 0010 1011 1001B (4) (DX)= 1111 1001 0011 0111B(5) (DX)= 0011 1001 0011 0111B (6)(DX)= 0100 1101 1100 1110B(7) (DX)= 1110 0100 1101 1100B (8) (DX)= 1001 0011 0111 0011B8. 已知程序段如下:MOV AX, 1234HMOV CL, 4ROL AX, CLDEC AXMOV CX, 4MUL CXINT 20H试问:(1)每条指令履行后,AX存放器的内容是什么?(2)每条指令履行后,CF,SF及ZF的值分离是什么?(3)程序运行停止后,AX及DX存放器的值为若干?答:MOV AX, 1234H (AX)=1234H, CF=0,SF=0,ZF=0MOV CL, 4ROL AX,CL (AX)=2341H,CF=1,SF=0,ZF=0 DEC AX (AX)=2340H,CF=1,SF=0,ZF=0MOV CX,4MULL CX (AX)=8D00H, CF=0,SF=1,ZF=0 INT 20H停止后,(DX)=0000H, (AX)=8000H9.试剖析下列程序段:ADD AX, BXJNC L2SUB AX, BXJNC L3JMP SHORTL5假如AX,BX的内容给定如下:AX BX(1) 14C6H 80DCH(2) B568H 54B7H问该程序在上述情形下履行后,程序转向何处.答:(1)转到L2处(2)转到L3处习题41.下列语句在存储器平分离为变量分派若干字节空间?并画出存储空间的分派图.V AR1 DB 10,2V AR2 DW 5 DUP(?),0V AR3 DB ‘HOW ARE YOU?’,3 DUP(1,2)V AR4 DD -1,1,0答:字节空间:V AR1:2;V AR2:12;V AR3:13;V AR4:8.存储空间的分派图:2.假定V AR1 和V AR2 为字变量,LAB 为标号,试指出下列指令的错误之处. (1)ADD V AR1,V AR2 (2)SUB AL,V AR1(3)JMP LAB[CX] (4)JNZ V AR1(5) MOV [1000H],100 (6)SHL AL, 4答:(1) 在算术运算指令中,两个操纵数不克不及同时为存储器寻址方法(2) AL 为字节,V AR1 为字变量,字长不相等;(3) 错误1:存放器相对寻址方法,只能运用基址或变址存放器,不克不及运用CX存放器.错误2:汇编格局错误,无法判段是段内转移照样段间转移.(4) 转向地址应为标号,不克不及是变量;(5) 目标操纵数的类型不肯定;(6) SHL 指令中,当所移位数超出1 时,必须用CL代替所移位数.3.对于下面的符号界说,指出下列指令的错误.A1 DB ?A2 DB 10K1 EQU 1024(1) MOV K1,AX (2)MOV A1,AX(3)CMP A1,A2 (4)K1 EQU 2048答:(1)K1 为常量,不克不及用MOV 指令赋值;(2)A1 为字节,AX 为字变量,类型不一致;(3)A1 和A2同为存储器寻址方法,不相符语律例则;(4)K1 从新赋值前,必须用PURGE 释放.4.数据界说语句如下所示:FIRST DB 90H,5FH,6EH,69HSECOND DB 5 DUP(?)THIRD DB 5 DUP(?)FORTH DB 4 DUP (?)自FIRST 单元开端存放的是一个四字节的十六进制数(低位字节在前),请求:编一段程序将这个数左移两位后存放到自SECOND 开端的单元,右移两位后存放到自THIRD 开端的单元,求补后放到FORTH开端的单元.(留意保存移出部分)答:DA TA SEGMENTFIRST DB 90H,5FH,6EH,69HSECOND DB 5 DUP(?)THIRD DB 5 DUP(?)FORTH DB 4 DUP (?)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DA TAMOV DS,AXLEA SI,FIRSTLEA DI,SECONDMOV CX,2CLC;左移2 位MOV AX,WORD PTR [SI] ;AX=5F90H 为低十六位数据INC SIINC SIMOV DX,WORD PTR [SI] ;DX=696EH 为高十六位数据PUSH DX ;保管原有的高十六位数据PUSH AX ;保管原有的低十六位数据ROL DX,CL;将高位数据不带进位轮回左移两位,即高2 位数据在DL 的低2 位AND DL,03H ;让DL 中仅保管移出的高2 位数据MOV [DI+4] ,DL;将移出的高2 位数据放入SECOND 中的最高单元中ROL AX,CL;将低位数据不带进位轮回左移两位,即AX 的高2 位在AL 的低2 位AND AL,03H;让AL 中仅保管移出的AX 高2 位数据MOV BL ,AL;将AL 中的数据放入BL 中保管POP AX;弹出原有的低十六位数据POP DX;弹出原有的高十六位数据SHL DX,CL;将高位数据算术逻辑左移2 位SHL AX,CL;将低位数据算术逻辑左移2 位OR DL,BL;将AX 中移出的高2 位数据放入DX 的低2 位MOVWORD PTR [DI] ,AXMOVWORD PTR [DI+2] ,DX;右移2 位LEA SI,FIRSTLEA DI,THIRDMOV CX,2CLCMOV AX,WORD PTR [SI] ;AX=5F90H 为低十六位数据INC SIINC SIMOV DX,WORD PTR [SI] ; DX=696EH 为高十六位数据PUSH DX;保管原有的高十六位数据PUSH AX;保管原有的低十六位数据ROR AX,CL;将低位数据不带进位轮回右移两位,即低2 位数据在AH 的高2 位AND AH,0C0H;让AH 中仅保管移出的低2 位数据PUSH CXMOV CX,6SHR AH,CLPOP CXMOV [DI] ,AH ;将移出的低2 位数据放入THIRD 中的最低单元中ROR DX, CL;将低位数据不带进位轮回左移两位,即AX 的高2 位在AL 的低2 位AND DH,0C0H ;让DH 中仅保管移出的DX 低2 位数据MOV BL ,DH ;将DH 中的数据放入BL 中保管POP AX ;弹出原有的低十六位数据POP DX ;弹出原有的高十六位数据SHR DX,CL ;将高位数据算术逻辑左移2 位SHR AX,CL ;将低位数据算术逻辑左移2 位OR AH,BL ;将DX 中移出的低2 位数据放入AX 的高2 位MOVWORD PTR [DI+1] , AXMOV WORD PTR [DI+3] ,DX;求补LEA SI,FIRSTLEA DI,FORTHMOV AX,WORD PTR [SI] ;AX=5F90H 为低十六位数据INC SIINC SIMOV DX,WORD PTR [SI] ; DX=696EH 为高十六位数据XOR AX, 0FFFFH ;将低十六位取反XOR DX, OFFFFH ;将高十六位按位取反CLCADD AX,01H ;低位加1,即可为原数的求补ADC DX,0 ;高位加低位加法时的进位MOVWORD PTR [DI] , AXMOV WORD PTR [DI+2] ,DXMOV AH,4CHINT 21HCODE ENDSEND START5.试编程序将内存从40000H到4BFFFH的每个单元中均写入55H,并再逐个单元读出比较,看写入的与读出的是否一致.若全对,则将AL置7EH; 只要有错,则将AL置81H.答:DATA SEGMENTDA1 DB 55HCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,4000HMOV DS,AXMOV CX,0C000HMOV BX,0000HMOV AH,55HNEXT1: MOV byte ptr[BX],AHINC BXLOOP NEXT1MOV BX,0000HMOV CX,0C000HMOV AL,81HNEXT2: MOV AH, [BX]CMP AH,55HJNZ EXITINC BXLOOP NEXT2MOV AL,7EHEXIT: MOV AH,4CHINT 21HCODE ENDSEND START6.在当前数据段4000H开端的128个单元中存放一组数据,试编程序将它们次序搬移到A000H开端的次序128个单元中,并将两个数据块逐个单元进行比较; 如有错将BL置00H; 全对则将BL置FFH,试编程序.答:DATA SEGMENTORG 400HDA1 DB 128 DUP(?)ORG 0A00HDA2 DB 128 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,DA1LEA DI,DA2MOV CX,128AGAIN:MOV AL,[SI]INC SIINC DILOOP AGAINLEA SI, DA1LEA DI, DA2MOV CX,128NEXT:MOV AL,[SI]MOV BL,[DI]CMP AL,BLJNZ ERRORINC SIINC DIMOV BL,0FFHLOOP NEXTJMP EXITERROR: MOV BL,00HEXIT: MOV AH,4CHINT 21HCODE ENDSEND START7. 设变量单元A.B.C存放有3个数,若3个数都不为零,则求3个数的和,存放在D中; 如有一个为零,则将其余两个也清零,试编写程序.答:DATA SEGMENTA DB ?B DB ?C DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXCMP A,00HJNZ LP1MOV B,0MOV C,0JMP LP4LP1:CMP B,00HJNZ LP2MOV A,0MOV C,0JMP LP4LP2:CMP C,00HJNZ LP3MOV A,0MOV B,0JMP LP4LP3:MOV AL,AADD AL,BADD AL,CMOV AH,4CHLP4: INT 21HCODE ENDSEND START8. 有一个100个字节的数据表,表内元素已按从大到小的次序分列好,现给定一元素,试编程序在表内查找,若表内已有此元素,则停止; 不然,按次序将此元素拔出表中恰当的地位,并修正表长.答:DATA SEGMENTBUFF DB 100 DUP(?)DA1 DB (?)LENGTH DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV SI,0MOV AL,DA1MOV CX,100FIND0: CMP BUFF[SI],ALJZ EXITINC SILOOP FIND0MOV DI,99MOV SI,0COMPARE: CMP BUFF[DI],ALJG INSERTMOV BL,BUFF[DI]MOV BUFF[DI+1],BLDEC DICMP DI,SIJNL COMPAREJMP EXITINSERT:MOV BUFF[DI+1],ALMOV LENGTH , 101EXIT:MOV AH,4CHINT 21HCODE ENDSEND START9. 内存中以FIRST和SECOND开端的单元平分离存放着两个16位组合的十进制(BCD码)数,低位在前.编程序求这两个数的组合的十进制和,并存到以THIRD 开端的单元.答:DATA SEGMENTFIRST DD 34341212HSECOND DD 78785656HTHIRD DB ?,?,?,?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA SI,FIRSTLEA DI,SECONDLEA BX,THIRDMOV CX,4CLCAGAIN:MOV AL,BYTE PTR[SI]MOV DL,BYTE PTR[DI]ADC AL,DLDAAMOV BYTE PTR[BX],ALINC SIINC DIINC BXLOOP AGAINJC AAMOV BYTE PTR[BX],0JMP EXITAA:MOV BYTE PTR[BX],1EXIT:MOV AH,4CHINT 21HCODE ENDSEND START10. 编写一段程序,吸收从键盘输入的10个数,输入回车符暗示停止,然后将这些数加密后存于BUFF缓冲区中.加密表如下:输入数字: 0,1,2,3,4,5,6,7,8,9; 暗码数字: 7,5,9,1,3,6,8,0,2,4.答:DATA SEGMENTMITAB DB '7591368024'CONT EQU $-MITABBUFFDB 10 DUP (?),'$'YUANWENDB 10 DUP (?),'$'DATA ENDSCODE SEGMENTASSUMECS∶CODE,DS∶DATASTART: MOV AX,DATAMOV DS,AXMOV SI,0MOV CX,CONTINPUT: MOV AH,1INT 21HCMP AL,13JZ EXITAND AL,0FHMOV YUANWEN[SI] ,ALINC SILOOP INPUTEXIT : LEA BX,MITABMOV CX,SIMOV SI,0JIAMI: MOV AL,YUANWEN[SI]XLAT MITABMOV BUFF[SI],ALINC SILOOP JIAMIMOV AH, 4CHINT 21HCODE ENDSEND START11.试编程序,统计由40000H开端的16K个单元中所存放的字符“A”的个数,并将成果存放在DX中.答:DATA SEGMENTDA1 DB 'A'BUFF DB 4000H DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,4000HMOV DS,AXMOV BX,0MOV CX,4000HFIND: MOV AL,[BX]MOV BL,DA1CMP AL,BLJNZ NEXTNEXT: INC SILOOP FINDMOV AH,4CHINT 21HCODE ENDSEND START12. 在当前数据段(DS),偏移地址为DATAB开端的次序80个单元中,存放着某班80个同窗某门测验成绩.按如下请求编写程序:(1) 编写程序统计≥90分; 80分~89分; 70分~79分; 60分~69分,<60分的人数各为若干,并将成果放在同一数据段.偏移地址为BTRX开端的次序单元中. (2) 试编程序,求该班这门课的平均成绩为若干,并放在该数据段的A VER单元中. 答:DATA SEGMENTBUFF DW 80 DUP(?)DA9 DB 0DA8 DB 0DA7 DB 0DA6 DB 0DA5 DB 0A VER DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV CX,80COMPARE: MOV BX,0CMP BUFF[BX],90JB LP8JMP NEXTLP8: CMP BUFF[BX],80JB LP7INC DA8JMP NEXTLP7: CMP BUFF[BX],70JB LP6INC DA7JMP NEXTLP6: CMP BUFF[BX],60JB LP5INC DA6JMP NEXTLP5: INC DA5JMP NEXTNEXT: INC BXLOOP COMPAREMOV CX,80XOR AX,AXMOV BX,00SUM: ADD AX,BUFF[BX] INC BXLOOP LP1MOV CL,80DIV CLMOV A VER , ALMOV AH,4CHINT 21HCODE ENDSEND START13. 编写一个子程序,对AL中的数据进行偶校验,并将经由校验的成果放回AL 中.答:JIOU PROCPUSH CXPUSH BXXOR AH, AHPUSH AXMOV CL, 7LOOP1: SAR AL, 1ADC AH, 0LOOP LOOP1MOV AL, AHXOR AH, AHMOV BL, 2DIV BLMOV BL, AHPOP AXROR BL, 1OR AL, BLPOP BXPOP CXRETJIOU ENDP14. 运用上题的子程序,对80000H开端的256个单元的数据加上偶校验,试编程序.CODE SEGMENTASSUME CS: CODESTART : MOV AX, 8000HMOV DS, AXMOV SI, 0MOV CX, 256LP: MOV AL, [SI] CALL JIOUMOV [SI], ALINC SILOOP LPMOV AH, 4CH INT 21HJIOU PROCPUSH CXPUSH BXXOR AH, AHPUSH AXMOV CL, 7 LOOP1: SAR AL, 1ADC AH, 0LOOP LOOP1 MOV AL, AHXOR AH, AHMOV BL, 2DIV BLMOV BL, AHPOP AXROR BL, 1OR AL, BLPOP BXPOP CXRETJIOU ENDPCODE ENDS END START习题51.试述DRAM的工作特色;与SRAM比拟有什么长处和缺少之处;解释它的运用处合.答:DRAM,动态随机存取存储器,须要不竭的刷新,才干保管数据. 并且是行列地址复用的,很多都有页模式. SRAM,静态的随机存取存储器,加电情形下,不须要刷新,数据不会丧掉,并且一般不是行列地址复用的.与SRAM比拟,DRAM价钱便宜.速度慢.容量大,重要用来做主存储器,存储程序和数据;而SRAM重要用在Cache等对速度请求高的情形.2.试述DRAM刷新进程和正常读/写进程的差别.答:刷新是以行动单位进行,且刷新进程中不克不及进行读写操纵.3.设有一个具有20位地址和32位字长的存储器,问:(1)该存储器能存储若干个字节的信息?(2)假如存储器由512K*8位SRAM芯片构成,须要若干片?(3)须要若干位作芯片选择?答:(1)该存储器能存储4MB的信息.(2) 须要8片512K*8位的芯片.(3) 须要1位做芯片选择.4.对于8K×8位RAM构成的存储器体系,若某组的肇端地址为08000H,则其末地址为若干?答:末地址为9FFF.5.在8088最大方法体系总线上扩充设计4K字节的SRAM存储器电路.SRAM芯片选用Intel 2114,肇端地址从0000H.试画出此存储器电路与体系总线的衔接图.答:体系容量为 4K*8bit,芯片容量为1K*4bit,所以一共须要8片芯片衔接图如下:6.在8088体系总线上扩充设计8K的字节的SRAM存储器电路.SRAM芯片选用Intel 6264,肇端地址从04000H开端,译码器电路74LS138.(1)盘算此RAM存储区的最高地址是若干.(2)画出此存储器电路与体系总线的衔接图.答:(1)最高地址是05FFFH.(2)7.在8086最小方法体系总线上扩充设计16K字节的SRAM存储器电路,SRAM芯片选用Intel 6264,肇端地址从04000H开端,译码器电路采取74LS138.(1)盘算此RAM存储区域的最高地址是若干(2)画出此存储器与总线的衔接图.答:(1) 07FFFH(2)习题61.什么是接口?接口的功效是什么?答:位于主机与外设之间,用来协助完成数据传送和掌握义务的逻辑电路称为接口电路,接口电路对输入/输出进程起缓冲和联络感化.接口的功效是有,数据缓冲功效,联络功效,寻址功效,预处理功效,中止治理功效.2.盘算机对I/O端口编址时平日采取哪两种办法?在8086体系中,用哪种办法进行编址?答:I/O端口和存储器同一编址;I/O端口单独编址.8086体系采取I/O端口单独编址方法.3.CPU和输入/输出装备之间传送的信息有哪几类?答: 数据信息,掌握信息,与状况信息.4.简述CPU与外设进行数据交流的几种经常运用方法.答: 程序掌握方法: 特色是依附程序的掌握来实现主机和外设的数据传送,可分为无前提传送方法和查询方法.中止掌握方法: 每次输入和输出一个数据,CPU都要检讨外设的状况.直接存储器存取掌握方法:cpu不介入数据传送,而是由DMA掌握器来实现内存与外设,外设与外设之间的直接传递.通道方法:可以实现对外围装备的同一治理和外围装备与内存之间的数据传送.外围处理机方法:由PPU自力于主机工作,削减了CPU掌握外设的累赘.5.无前提传送方法实用哪些场合?查询方法道理如何?重要用在什么场合?答:无前提传送实用于简略的输入/输出装备,CPU可以随时读取或接收状况.这些旌旗灯号变更迟缓,当须要收集数据时,无需检讨端口,就可以立刻收集数据,直接用输入/输出指令完成.无前提传送方法重要用于掌握CPU与低俗I/O接口之间的信息交流.6.现有一输入装备,其数据端口的地址为FFE0H,并于端口FFE2H供给状况,当其D0位为1时标明输入数据预备好.请编写采取查询方法进行数据传送的程序段,请求从该装备读取100B并输入到1000H:2000H开端的内存中.MOV DX, 0FFE2HL1: IN AL, DX 这是习题6的第6题的答案,TEST AL, 01H 这个程序写不出来,建议删这一问JZ L1MOV AX, 1000HMOV DS, AXMOV DX, 2000HMOV CX, 100MOV DX, 0FFE0HL2: IN AL, DXMOV [DX], ALINC BXLOOPN L27.查询式传送方法有什么优缺陷?中止方法为什么能填补查询方法的缺陷?答:查询传送方法CPU通进程序不竭查询响应装备的状况,状况不相符请求,则CPU须要等待;只有当状况旌旗灯号相符请求时,CPU才干进行响应的操纵.中止方法进步了盘算机体系中信息处理的并行和处理器效力,中止可以实现同步操纵,及时处理等功效.8.8088/8086中止向量表的感化是什么?答:中止向量表树立了不合的中止源与其响应的中止办事程序首地址之间的接洽,它是CPU在响应中止时可以根据中止类型码主动转向中止办事程序.9.什么叫中止向量?它放在哪里?对于1CH的中止向量在哪里?假如1CH的中止程序从5110H开端:2030H开端,则中止向量应当如何存放?答:中止向量即用来供给中止进口地址的一个指针.10.8259中IRR, IMR, ISR三个存放器的感化是什么?答:⑴中止请求存放器IRR8259A有8条外部中止请求输入旌旗灯号线IR0-IR7,每一条请求线上有一个响应的触发器来保管请求旌旗灯号,它们形成了中止请求存放器IRR(Interrupt Request Register).⑵中止屏障存放器IMRIMR(Interrupt Mask Register)用来存放屏障位信息,IMR的每一位可以制止IRR 中对应位的中止请求输入旌旗灯号进入.⑶中止办事存放器ISRISR(Interrupt Service Register)存放当前正在进行办事的所有中止.ISR中响应位的置位是在中止响应的INTA脉冲时代,由优先权判决电路根据IRR中各请求位的优先权级别和IMR中屏障位的状况,将中止的最高优先级请求位选通到ISR中.11.类型号为20H的中止办事程序进口符号地址为INT-5,试写出中止向量的装入程序片断.答:MOV AX, 0MOV DS, AXMOV SF, 20H*4LEA AX, IMSMOV [IS], AXMOV AX, SEQ, INTSMOV [SI+2], AX12.简述DMA掌握器同一般接口芯片的差别.答:DMA掌握器能给出拜访内存所须要的地址信息,并能主动修正地址指针,也能设定和修正传送的字节数,还能向存储器和外设发出响应的读/写掌握旌旗灯号.在DMA传送停止后,它能释放总线,把对总线的掌握权又交还给CPU.用DMA方法传输数据时,不须要进行呵护和恢复断点及现场之类的额外操纵.13.简述8237A3种根本传送类型的特色.答:单次传送方法:每次DMA操纵只传送1B,然后就主动把总线掌握权交。
微机原理与接口技术(第二版)课后习题答案完整版
习题11.什么就是汇编语言,汇编程序,与机器语言?答:机器语言就是用二进制代码表示得计算机能直接识别与执行得一种机器指令得集合。
汇编语言就是面向及其得程序设计语言。
在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。
这种用符号代替机器语言得二进制码,就把机器语言编程了汇编语言。
使用汇编语言编写得程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用得程序叫汇编程序。
2.微型计算机系统有哪些特点?具有这些特点得根本原因就是什么?答:微型计算机得特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。
这些特点就是由于微型计算机广泛采用了集成度相当高得器件与部件,建立在微细加工工艺基础之上。
3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”得概念。
答:微型计算机系统得硬件主要由运算器、控制器、存储器、输入设备与输出设备组成。
“存储程序控制”得概念可简要地概括为以下几点:①计算机(指硬件)应由运算器、存储器、控制器与输入/输出设备五大基本部件组成。
②在计算机内部采用二进制来表示程序与数据。
③将编好得程序与原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预得情况下,自动、高速得从存储器中取出指令加以执行,这就就是存储程序得基本含义。
④五大部件以运算器为中心进行组织。
4.请说明微型计算机系统得工作过程。
答:微型计算机得基本工作过程就是执行程序得过程,也就就是CPU自动从程序存放得第1个存储单元起,逐步取出指令、分析指令,并根据指令规定得操作类型与操作对象,执行指令规定得相关操作。
如此重复,周而复始,直至执行完程序得所有指令,从而实现程序得基本功能。
5.试说明微处理器字长得意义。
答:微型机得字长就是指由微处理器内部一次可以并行处理二进制代码得位数。
它决定着计算机内部寄存器、ALU与数据总线得位数,反映了一台计算机得计算精度,直接影响着机器得硬件规模与造价。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 8088汇编语言程序设计本章的主要内容是汇编语言语句行的构成,源程序的结构,汇编语言程序设计方法。
3.1 重点与难点本章的学习重点是结构化程序设计思想,顺序、分支、循环结构的程序设计,子程序结构的设计与调用,中断指令的应用。
另外,汇编语言伪指令的使用、源程序的结构等也是必须掌握的。
3.1.1 汇编语言语句行的构成1.标记(1)标识符:由数字、字母和下划线组成,且不能以数字开头,最大长度不超过31个字符。
(2)保留字:汇编语言中保留下来的具有特殊用途的字串,如指令、伪指令、寄存器名等都是保留字。
保留字不可用作标识符。
(3)界符:程序或指令中两个部分的分隔符号。
汇编语言源程序中可用的界符:′〈〉;,:? $ () + - = &[] * / ·(4)常量:数字常量,可以使用不同的进制D、B、H、Q;字符串常量,由引号引起来的字符串,相当给出字符所对应的ASCII码串。
2.符号及其属性(1)寄存器:8086/8088 CPU的寄存器可以作为指令的操作数。
(2)变量:即内存单元的符号地址。
变量不能与保留字、段名重名。
它有三个属性:段属性,指变量所在段的段地址;偏移量,指变量所在段的起始地址到变量地址之间的字节数,即偏移(有效、逻辑)地址。
类型,指指变量具有的字节数,包括BYTE、WORD、DWORD、QWORD和TBYTE等。
(3)标号:即代码段中某条指令的符号地址,由编程者根据需要确定的。
标号不能与保留字重名,可使用字母、数字及下划线,但不允许用数字开头,字符个数不超过31个。
标号作为符号地址也有三个属性:段、偏移量和类型(NEAR、FAR)。
3.表达式表达式是作为语句的一个操作数,在汇编时一个表达式得到一个值。
(1)操作数数据——常数、符号常量;存储单元地址——常用符号地址表示。
(2)运算符算术运算符:+、-、*、/、MOD。
对地址的运算仅有+(加)、-(减)运算符。
逻辑运算符:AND、OR、NOT和XOR。
注意,不要将其和同样名称的指令操作码相混淆。
关系运算符:EQ、NE、LT、GT、LE和GE。
参与关系运算的两个操作数必须都是数值,或同一段中的两个存储单元地址,运算结果为0FFFFH(真,True)或0(假,False)。
分析运算符:0FFSET——取一个标号或变量的偏移地址;SEG——取一个标号或变量所在段的段地址;TYPE——取变量和标号的类型(BYTE、WORD、DWORD或NEAR、FAR);SIZE——计算一个存储区的字节总数;LENGTH——计算存储区中数据单元的数目,只对数据定义中的DUP操作有效。
综合运算符:PTR——用于暂时改变变量或标号的原有属性,只在当前语句中有效;THIS——和PTR类似,用于改变存储区的类型;SHORT——指定一个标号为短标号。
4.语句指令语句:主要由CPU指令组成,每条语句在汇编过程中都会产生对应的目标代码。
伪操作或伪指令语句:为汇编程序提供信息,让汇编程序在汇编过程中执行特定的功能。
两者本质区别在于,伪指令在汇编过程中不形成任何代码。
这里仅对伪指令进行总结。
(1)符号定义伪指令(赋值语句)格式:符号常量 EQU 表达式或符号常量=表达式功能:把表达式的值赋给符号名。
说明:在程序中,用EQU语句赋值的符号名不能被重新赋值,但用“=”号赋值的符号名可以被重新赋值。
若要重新赋值,必须使用解除伪指令PURGE。
(2)内存数据定义伪指令格式:[变量名] 数据定义表达式或数据项表功能:可为数据项分配存储单元,并根据需要设置其初值。
还可用符号代表数据项。
说明:数据定义符有字节DB、单字DW、双字DD、8字节DQ、10字节DT;DUP()表示数据重复,“$”表示地址计数器当前值,“?”用于预留存储空间;数据项允许为字符串。
(3)段定义伪指令格式:段名SEGMENT [定位方式][连接方式][‘类别名’]段体段名 ENDS功能:为程序汇编和链接说明了段名、分段的各种属性以及分段的开始和结束。
段名是自定义符,开始的段名与结束的段名必须相同。
段的长度不超过64KB。
属性参数定义:定位方式,指定段的起始地址边界。
有四种方式:页边界PAGE、段边界PARA(系统隐含)、字边界WORD、字边界BYTE。
连接方式,告诉连接程序本段与其他段的连接方式。
系统隐含为不写,表示本段不与任何段链接。
STACK表示此段为堆栈段。
‘类别名’,是合法的自定义符,长度不超过40。
凡是类别名相同的段在连接时均按先后顺序连接在相邻存储区中。
说明:段名的命名规则和变量名以及标号一样;单模块程序中属性参数可省略不写。
(4)段址寄存器说明伪指令格式:ASSUME 段寄存器:段定义名1[,段寄存器:段定义名2,…]功能:告诉汇编程序在汇编时,段寄存器CS、DS、SS和ES应具有的符号段基址。
段寄存器实际值(CS除外)由传送指令在执行程序时赋值。
(5)过程(子程序)定义伪指令格式:过程名 PROC [NEAR](或FAR)∶过程名 ENDP说明:过程名是自定义符。
调用格式为:CALL 过程名过程中的RET指令,实现从过程返回调用处。
选NEAR,过程是段内调用,过程中的RET是段内返回。
选FAR,过程是段间调用,过程中的RET是段间返回。
系统默认是近过程。
(6)模块开始伪指令格式:NAME 模块名功能:该伪指令指明程序模块的开始,并指出模块名。
模块名是自定义符,不能与系统保留字同名。
每次汇编只能出现一次。
若该伪指令不写,则取TITLE语句中的页标题前6个字符;若没有TITLE语句,则取源程序文件名为模块名。
(7)建立标题伪指令格式:TITLE 标题功能:建立每页标题。
(8)模块结束伪指令格式:END [启动标号或过程名]功能:告诉汇编程序源文件结束,并给出执行程序的入口。
仅用于主模块才有意义。
(9)定位伪指令格式:ORG 表达式功能:把该伪指令以下所定义的内存数据或程序,从表达式的值所指定的起点开始连续存放,直至遇到新的ORG指令。
表达式的值是一个无符号数。
(10)系统隐含进位制伪指令格式:RADIX 表达式功能:定义在源程序中书写数据时隐含进位制方式。
表达式的值是2~16之间的十进制数,要遇到新的RADIX伪指令以后才改变隐含进位制。
3.1.2 汇编语言源程序的结构1.源程序结构8088汇编语言源程序采用分段结构的形式,一个完整的汇编语言源程序通常由若干个逻辑段组成,包括数据段、附加数据段、堆栈段和代码段。
2.源程序基本框架DSEG SEGMENT…;数据定义(DB/DW/DD)DSEG ENDSESEG SEGMENT…ESEG ENDSSSEG SEGMENT STACKDW 512 DUP(?);堆栈段大小为1024BSSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,ES:ESEG;指定段寄存器与段之间的对应关系START:MOV AX,DSEGMOV DS,AXMOV AX,ESDGMOV ES,AX;DS、ES段寄存器初始化… ;程序部分MOV AX,4C00H;8088/8086为MOV AH,4CHINT 21H;程序结束,返回DOSCSEG ENDSEND START说明:CS段寄存器的初值,由系统自动指定为END后的地址;ES段寄存器的初值,可以用类似DS的方法设置,或由系统指定为定义了STACK 属性的段。
若未定义堆栈段,则系统默认使用系统堆栈。
3.1.3 汇编语言程序设计的方法1.顺序结构程序设计的方法顺序结构是最基本的结构。
其特点是CPU按指令排列的顺序逐条执行。
2.分支(选择)结构程序设计的方法分支结构,根据不同的条件转到不同的程序段执行。
3.循环结构程序设计的方法循环结构,完成需要重复执行的工作。
通常由三部分组成:初始化部分,完成对地址指针寄存器、计寄存器等循环中用到的寄存器及存储器置初值;循环体,完成需重复执行的工作;循环控制,用于判断循环是否结束,若结束则跳出循环,未结束则修改地址指针和计数器值,为下一轮循环做准备。
4.混合结构程序设计方法混合结构程序设计是指上述三种设计方法的组合应用,也是程序设计中最常用的方法,5.子程序的设计方法子程序(或过程)是完成某项特殊功能的程序模块,可以在程序中的任何地方多次被调用。
用CALL 指令调用子程序,用RET 指令返回主程序;用伪指令PROC 和ENDP 定义子程序。
(1)参数传递方式通过程序存储器中的参数表传递,在主程序中把要传送的参数直接放在调用指令的后面,而在子程序中到堆栈中取返回地址,以获得参数。
通过堆栈传递,适用于参数较多,且子程序有嵌套、递归调用的情况。
主程序将要传递的参数压入堆栈,子程序中再将这些参数从堆栈中弹出。
(2)寄存器和存储单元的内容保护(保护现场)在主程序中用到的寄存器或存储单元,要在子程序里被用到,而主程序并不希望这些单元的内容被修改,此时必须在子程序入口处将这些单元内容压入堆栈保护起来。
6.其它设计方法介绍(1)DOS 和BIOS 中断功能调用DOS 和BIOS 为用户提供了两组系统服务程序,用户可以采用软中断指令INT N 来调用。
DOS 调用与BIOS 调用相比,不依赖于硬件,通用性较好,但执行效率较低。
DOS 和BIOS 中断功能调用的使用方法如图所示:条件伪操作的一般格式如下:IF条件…(语句组1)[ELSE];可选的…(语句组2)ENDIF如果条件为真,则汇编语句组1,否则如有ELSE则汇编语句组2,如无ELSE则不生成条件块。
ENDIF表示结束条件汇编。
下表给出了汇编语言的条件伪操作及其意义。
表3 条件伪操作及其意义条件伪操作意义IF表达式如果汇编程序求出的表达式非0,条件为真IFE表达式如果汇编程序求出的表达式等于0,条件为真IF1如果是第一遍扫描,条件为真IF2如果是第二遍扫描,条件为真IFDEF符号如果符号在程序中有定义或被说明为EXTRN,条件为真IFNDEF符号如果符号在程序中无定义或未用EXTRN说明,条件为真IFB〈变元〉如果变元是空白符,条件为真(变元要求带尖括号)IFNB〈变元〉如果变元不是空白符,条件为真IFIDN〈变元1〉,〈变元2〉如果变元1的字符串和变元2的字符串相同,条件为真IFNIDN〈变元1〉,〈变元2〉如果变元1的字符串和变元2的字符串不同,条件为真3.2 例题解析1.伪指令与指令的区别是什么?答:指令是在程序运行期间由CPU执行的,汇编后由对应的机器代码所代替。
伪指令是不可执行的,它只在源程序汇编期间由汇编器处理的命令,用来指示汇编器为数据分配内存空间,或是为汇编器提供源程序结束或段定义等信息。
二者本质区别在于,伪指令在汇编过程中不形成任何代码。
2.设有数据段如下:DATA SEGMENTBUF1DB1, 6, 3, 90H,‘A’,‘G’,‘V’BUF2DW567, 9087, 100 DUP(?), 1, 4,BUF3DW100 DUP(?)DATA ENDS试确定下列指令执行后寄存器AX的值。