1二CPU是哪2个部件集成到一个芯片?运算器,控制器计算机系统包括哪2个部分?硬件,软件计算机软件包括哪2种类型?系统软件,应用软件CPU由哪几部分组成?1、算术逻辑部件(ALU)2、控制逻辑3、工作寄存器8086的有哪几个通用寄存器?哪些提供了字节访问?寄存器可以分为程序可见的寄存器和程序不可见的寄存器两大类。通用寄存器有AX(accumulator)累加器;BX(base)基址寄存器;CX(count)计数器;DX(data)数据寄存器;BP(basepointer)基址指针寄存器;SI(sourceindex)源变址寄存器;DI(destinationindex)目的变址寄存器;其中AX(accumulator)累加器;BX(base)基址寄存器;CX(count)计数器;DX(data)数据寄存器;提供了字节访问标志寄存器各标志位的含义?IP和SP的含义?标志名标志为1标志为0OF溢出(是/否)DF方向(减量/增量)IF中断(允许/关闭)SF符号(负/正)ZF零(是/否)AF辅助进位(是/否)PF奇偶(偶/奇)CF进位(是/否)OVDNEINGZRACPECYNVUPDIPLNZNAPONCTF为陷阱标志位,为1时,每条指令执行后产生陷阱,用于单步调试IP(instructionpointer)指令指针寄存器;SP(stackpointer)堆栈指针寄存器;FLAGS标志寄存器。28086有哪几个段寄存器?代码段(codesegment,CS)、数据段(datasegment,DS)、堆找段(stacksegment,SS)和附加段(extrasegment,ES)4个寄存器。了解寄存器和存储器的不同寄存器存储器在CPU内部在CPU外部访问速度快访问速度慢容量小,成本高容量大,成本低用名字表示用地址表示没有地址地址可用各种方式形成8086是按字编址,对吗不对,按字节编址8086的一个字(16位)怎样存入存储器的?个字存入存储器要占有相继的两个字节,存放时低位字节存入低地址,高位字节存入高地址。8086的使用存储器地址访问数据时,能根据地址确定数据的大小吗不能,同一个地址既可看作字节单元的地址,又可看作字单元、双字单元的地址,这要根据使用情况确定。8086的地址空间是多大?1MB1个段最大最小都是多大,段首地址的特点64KB,段不能起于任意地址,而必须从任一小段的首地址开始,每16个字节为一小段。一个物理地址由段地址和偏移地址组成,这种表示是唯一的吗不唯一学会段地址和偏移地址合成物理地址物理地址=16段地址+偏移地址例:(DS)=2100H,(BX)=0500H(PA)=21000H+0500H=21500H8086实模式下内存最多多大?1M三能识别各种寻址方式,尤其是存储器寻址与数据有关的寻址方式1.立即寻址方式2.寄存器寻址方式存储器寻址的几个说明3.直接寻址方式4.寄存器间接寻址方式5.寄存器相对寻址方式6.基址变址寻址方式37.相对基址变址寻址方式与转移地址有关的寻址方式1.段内直接寻址2.段内间接寻址3.段间直接寻址4.段间间接寻址理解立即寻址方式操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段里,这种操作数称为立即数。【例】MOVAL,5;执行后,(AL)=5【例】MOVAX,3064H;执行后,(AX)=3064H寄存器寻址和寄存器间接寻址的区别寄存器寻址方式操作数在寄存器中,指令指定寄存器号。【例】MOVAX,BX如指令执行前(AX)=3064H,(BX)=1234H;则指令执行后,(AX)=1234H。寄存器间接寻址方式有效地址就在某个寄存器中,而操作数则在存储器中。在16位寻址时可用的寄存器是BX,BP,SI和DI。8086存储器寻址的有效地址如何构成有效地址可以由以下四种成分组成:(1)位移量(displacement)是存放在指令中的一个8位、16位或32位的数,它不是立即数,是一个地址。(2)基址(base)是存放在基址寄存器中的内容。它是有效地址中的基址部分,通常用来指向数据段中数组或字符串的首地址。(3)变址(index)是存放在变址寄存器中的内容。它通常用来访问数组中的某个元素或字符串中的某个字符。(4)比例因子(scalefactor)是386及其后继机型新增加的寻址方式中的一个术语,其值可为1、2、4或8。在寻址中,可用变址寄存器的内容乘以比例因子来取得变址值。这类寻址方式对访问元素长度为2,4,8字节的数组特别有用。有效地址的计算可以下式表示:EA=基址+(变址×比例因子)+位移量段前缀使用的3个例外情况(1)串处理指令的目的串必须用ES段;(2)PUSH指令的目的和POP的源必须用SS段;(3)指令必须存放在CS段中。默认段选择规则4双操作数指令的2个操作数可以都是存储器寻址吗为使指令字不要过长,规定双操作数指令的两个操作数中,只能有一个使用存储器寻址方式。立即寻址和直接寻址都用到数值,汇编指令中如何区分立即寻址方式操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段里,这种操作数称为立即数。直接寻址方式操作数的有效地址只包含位移量一种成分,其值就存放在代码段中指令的操作码之后。位移量的值即操作数的有效地址。了解符号地址的使用方式可以用符号地址代替数值地址MOVAX,VALUE或MOVAX,[VALUE]寄存器间接寻址使用的寄存器可以是AX吗不能有效地址就在某个寄存器中,而操作数则在存储器中。在16位寻址时可用的寄存器是BX,BP,SI和DI。掌握有效地址有2种以上成分时的各种表示方法学会使用与转移地址有关的寻址方式1.段内直接寻址2.段内间接寻址3.段间直接寻址4.段间间接寻址段内直接寻址方式有哪2种?它符合程序的再定位要求,对吗?段间直接寻址呢?JMPNEARPTRPROGIAJMPSHORTQUEST其中,PROGIA和QUEST均为转向的符号地址,在机器指令中,用位移量来表示。在汇编指令中,如果位移量为16位,则在符号地址前加操作符NEARPTR,如果位移量为8位,则在符号地址前加操作符SHORT。这种寻址方式的转移指令本身不会发生变化,这是符合程序的再定位要求的段间直接寻址5在指令中直接提供了转向段地址和偏移地址,所以只要用指令中指定的偏移地址取代IP寄存器的内容,用指令中指定的段地址取代CS寄存器的内容就完成了从一个段到另一个段的转移操作。【例】JMPFARPTRNEXTROUTINT其中,NEXTROUTINT为转向的符号地址,FARPTR则是表示段间转移的操作符。与地址相关的间接寻址如果使用存储器寻址,为什么要指出是字还是双字?段间间接寻址JMPDWORDPTR[INTERS+BX]段内间接寻址JMPBXJMPWORDPTR[BP+TABLE]MOV指令应注意的细节CS和IP不能作为操作数,sreg不包括CS立即数不能做目的操作数立即数不能直接赋值给段寄存器sreg,需要时可以通过通用寄存器中转两个存储器单元之间不能直接传送数据,即不能同时做源操作数和目的操作数两个段寄存器之间不能直接传送数据目的操作数和源操作数的数据宽度必须一致,即都必须为8位或都必须为16位理解指令PUSH和POP,注意其格式及使用方法格式为:PUSHSRC执行操作(8086为16位指令):(SP)←(SP)-2((SP)+1,(SP))←(SRC)PUSH向SS:SP存数PUSHCX;若(SP)=2000H,执行指令后,CH与CL的内容分别压入堆栈偏移量为1FFFH与1FFEH的字节单元中,而(SP)=1FFEH格式为:POPDST执行操作(8086为16位指令):(DST)←((SP)+1,(SP))(SP)←(SP)+28086中,PUSH和POP指令只能作字操作,均不影响标志位POP从SS:SP取数POPDS;若(SP)=2000H,执行指令后,堆栈中偏移量为2000H与2001H的两字节单元分别送DS低字节和高字节单元中,而(SP)=2002H8086中,PUSH/POP指令允许的格式:PUSH/POPregPUSH/POPmemPUSH/POPsegregsegreg不允许使用CS寄存器,操作数不允许使用立即数寻址方式(PUSHdata)保存现场时要注意压入与弹出的顺序是相反的,例如:压入时:pushAX6pushBX弹出时:popBXpopAXXCHG指令的2个操作数中必须有一个是寄存器,对不对?对学会IN和OUT指令的2种使用形式IN输入指令长格式为:INAL,PORT(字节)INAX,PORT(字)执行的操作:(AL)←(PORT)(字节)(AX)←(PORT+1,PORT)(字)短格式为:INAL,DX(字节)INAX,DX(字)执行的操作:(AL)←((DX))(字节)(AX)←((DX)+1,(DX))(字)PORT为8位地址,DX可指定16位地址以上针对8086OUT输出指令长格式为:OUTPORT,AL(字节)OUTPORT,AX(字)执行的操作:(PORT)←(AL)(字节)(PORT+1,PORT)←(AX)(字)短格式为:OUTDX,AL(字节)OUTDX,AX(字)执行的操作:((DX))←(AL)(字节)((DX+1,(DX))←(AX)(字)以上针对8086I/O端口取值范围是多少?0~65535了解XLAT指令的功能格式为:XLATOPRXLAT执行的操作(8086为16位指令):(AL)←((BX)+(AL))将BX中内容与AL中内容相加,作为偏移地址,将数据段中对应字节单元内容送入AL中。BX通常为表格首址,利用该指令实现查表。由于AL只有8位,所以表格长度不能超过256OPR为表格首地址(一般为符号地址),只为可读性而设置,不真正发挥作用指令不影响标志位例:MOVAL,5MOVBX,OFFSETTABXLAT…7TABDB10H23H34H12H23H45H65H90H76H执行指令后,(AL)=45H例:如(BX)=0040H,(AL)=0FH,(DS)=F000H指令XLAT把F0000H+0040H+0FH=F004F的内容送AL最后(AL)=2CHLEABX,LIST与MOVBX,OFFSETLIST完成的功能一样吗一样LDS(LES)指令的功能段寄存器装入指令LDS/LES格式:LDS/LESREG,SRCLDS与LES指定的段寄存器分别为DS和ESSRC只能用存储器寻址方式目的寄存器不允许使用段寄存器。执行的操作:(REG)←(SRC)(SREG)←(SRC+2)例:LDSBX,[2000H];把内存数据段中偏移量为2000H开始的[2000H]、[2001H]单元内容送BX,[2002H]、[2003H]单元内容送DS存取标志寄存器的方法有哪些存取标志寄存器指令LAHF标志送AH指令格式为:LAHF执行的操作:(AH)←(FLAGS的低字节)SAHFAH送标志寄存器指令格式为:SAHF执行的操作:(FLAGS的低字节)←(AH)8到16位和16到32的符号扩展使用哪2个命令,如何扩展?CBW字节转换为字指令格式:CBW执行的操作:AL的内容符号扩展到AH,形成AX中的字。若(AL)80H,则(AH)=0;若(AL)=80H,则(AH)=0FFHCWD字转换为双字指令格式:CWD执行的操作:AX的内容符号扩展到DX,形成DX:AX中的双字。若(AX)8000H,则(