《汇编语言》综合复习资料

合集下载

汇编语言复习资料ppt课件

汇编语言复习资料ppt课件

Chapter Two Addressing
Assembly
1. 寄存器寻址
2. 寄存器间接寻址 4. 基址加变址寻址 6. 直接寻址
3. 变址寻址
5. 立即寻址
7. 寻址问题讨论
8. 寻址综合举例P43
liuxzh@
1. 寄存器寻址
Assembly
操作数在寄存器中
liuxzh@
3.存储器的地址形成
Assembly
物理地址
1.最小寻址单元是字节, 每个单元有唯一的地址编号,20位地址线,最小地址编号 是:00000H,最大地址编号是FFFFFH
2.两个连续的字节单元形成一个字, 两个连续的字形成一个双字(举例说明排列顺序)
liuxzh@
1.源操作数与目的操作数要匹配 2. CS不可作为目的操作数
3. 举例: MOV AX,BX MOV CH,DL
liuxzh@
2. 寄存器间接寻址
Assembly
寄存器中内容是操作数地址
1. 16位中只可使用BX,SI,DI,BP 之一,其它寄存器不得使用!!! 2. 源操作数与目的操作数不可同时为 寄存器间接寻址 3. 举例并比较: MOV MOV MOV MOV AX,BX AX,[BX] [SI],BX SI,BX
1.机器语言就是二进制代码组成的语言 2.每种计算机机器语言不同
3.机器指令由操作码和操作数组成
liuxzh@
1. 机器语言与汇编语言
Assembly
汇编语言
1.汇编语言就是机器语言的助记符 2.汇编是低级语言,但也要“变成”机器语言 3.汇编的源程序通过Assembler变成机器语言目标程序 4.宏汇编就是加上宏命令与伪指令组成的汇编程序 5.机器语言,汇编程序,宏汇编分别举例

汇编语言复习资料4

汇编语言复习资料4

《汇编语言》试卷一、单选题(每题1分,共20分)1.CPU在读取指令时,实际读到的是什么?()A.伪指令和汇编指令所对应的字符串B.用汇编语言写的源程序中的信息C.由一系列二进制位组成的信息D.汇编指令所对应的字符串2.关于编译和连接,错误的说法是()。

A.编译产生的*.obj文件不能在操作系统下直接运行B.连接产生的*.exe文件里面没有伪指令C.编译可以检查出语法错误D.连接可以检查出逻辑错误3.CPU传递到地址总线上的地址是()。

A.逻辑地址B.偏移地址C.物理地址D.段地址4.一条将立即数赋值给寄存器的指令,在执行的前一刻,指令中的立即数在()中。

A.通用寄存器B.端口C.内存D.CPU内部的指令缓冲器5.关于8086CPU的几个寄存器,正确的说法是()。

A.可将BX当成两个8位寄存器,在偏移地址范围为0~255时,可以用“mov ax,[bl]”来实现将内存中的数据读到ax中B.可以用“byte ptr”实现将SI当成两个8位寄存器使用C.可将AX、BX、CX、DX当成8个8位寄存器使用D.AX、ah、al是不同的寄存器,指令“add al,bl”的执行不会影响AX的值6.对于16位结构的CPU,其应有的特征不包括()。

A.寄存器最大宽度是16位B.寄存器与运算器之间的通路为16位C.运算器一次处理的数据的最大宽度为16位D.地址总线宽度是16位7.下列与8086CPU寻址相关的说法,错误的是()。

A.8086CPU有20根地址总线,它的寻址能力为1MBB.一个物理地址可以对应多个段地址与偏移地址C.因为段寄存器是16位,所以一个段最大为64KBD.CPU内部有一个能合成20位地址的地址加法器8.8086CPU读取、执行指令的过程是()。

①从CS:IP指向的内存空间读取指令,将指令放入指令缓冲器②执行指令,转到步骤①③IP指向下一条指令A.①、②B.①、③、②C.若指令是转移指令,过程为①、③、②,不是则过程为①、②D.若指令是转移指令,过程为①、②,不是则过程为①、③、②9.对于8086CPU,错误的指令是()。

汇编语言复习资料

汇编语言复习资料

汇编语言复习资料◆cpu是计算机的核心部件,要让cpu工作就要提供数据和指令,而其在存储器中存放。

◆存储器白分成若干个单元后,每个单元从0开始顺序编号,例如一个计存储器有128个存储单元,编号从0—127。

计算机最小的信息单位是bit,也就是一个二进制位。

8个bit组成一个Byte(一个字节)◆Cpu是通过地址总线来指定存储器单元的,可见地址总线能传递多个不同的信息,cpu就可以多少个存储单元进行寻址。

一个cpu有N根地址线,则可以说这个cpu的地址总线的宽度为N,这样的cpu可以寻找2N个内存单元。

数据总线的宽度决定了cpu和外界数据的传输速度。

(8根一个字节)。

地址总线的宽度决定了cpu的寻址能力。

控制总线决定了cpu对系统中其他器件的控制能力。

◆内存地址空间的大小受cpu地址总线宽度的限制。

8086cpu地址总线的宽度为20,可以传送220个不同的地址信息。

(大小从0至220-1)。

即可定位220个内存单元。

则8086PC 的内存地址空间的大小为1MB。

同理,8086CPU的地址总线的宽度为32,则内存地址空间最大为4GB。

◆Cpu主要的器件是寄存器。

物理地址所有的内存单元构成的存储空间是一个唯一的线性空间,每一个内存单元在这个空间都有唯一的地址。

(即内存单元的实际访问地址)。

◆16位结构的cpu有以下几方面的特性:运算器一次最多可以处理16位的数据;寄存器的最大宽度为16位;寄存器与运算器之间的通路为16位(8086是16位的cpu,在其内部能够一次性处理信息的最大长度也是16位)。

8086cpu有20位地址总线,可传送20位地址总线,送达1MB的寻找能力。

◆Cpu读取内存时如图所示:(1)cpu的相关部件提供两个16位的地址,一个称为段地址一个称为偏移地址。

(2)段地址和偏移地址通过内部总线送入一个称为地址加法器的部件,(3)地址加法器将两个16位的地址合位一个20位的物理地址。

(因为8086cpu只能送出16位)(4)地址加法器通过内部总线将20位物理地址送入输入输出控制电路。

汇编语言复习题附答案

汇编语言复习题附答案

汇编语言复习题附答案一、选择题1. 汇编语言是一种()。

A. 高级语言B. 机器语言C. 低级语言D. 面向对象语言答案:C2. 在汇编语言中,指令通常由()组成。

A. 操作码和操作数B. 操作数和地址C. 操作码和地址D. 操作码、操作数和地址答案:A3. 汇编语言中的寄存器通常用来()。

A. 存储数据B. 存储指令C. 存储程序D. 存储地址答案:A4. 汇编语言中的指令MOV AX, BX的作用是()。

A. 将AX寄存器的值移动到BX寄存器B. 将BX寄存器的值移动到AX寄存器C. 将AX和BX寄存器的值相加D. 将AX和BX寄存器的值相减答案:B5. 汇编语言中的循环结构通常使用()指令实现。

A. JZB. JNZC. LOOPD. CALL答案:C二、填空题1. 汇编语言中的指令ADD AX, BX表示将AX和BX寄存器的值相加,并将结果存入____寄存器。

答案:AX2. 汇编语言中的指令SUB AX, BX表示将AX寄存器的值减去BX寄存器的值,并将结果存入____寄存器。

答案:AX3. 汇编语言中的指令CMP AX, BX用于比较AX和BX寄存器的值,但不进行存储操作,结果影响____标志。

答案:标志寄存器4. 汇编语言中的指令JMP LABEL用于无条件跳转到标签____处执行。

答案:LABEL5. 汇编语言中的指令PUSH AX将AX寄存器的值压入____。

答案:堆栈三、简答题1. 简述汇编语言与机器语言的区别。

答案:汇编语言是一种低级语言,它使用助记符来表示机器语言的指令,更易于人类理解和编写。

机器语言则是由二进制代码组成的指令集,直接被计算机硬件执行,但对人类来说难以阅读和编写。

2. 描述汇编语言中如何实现条件跳转。

答案:汇编语言中实现条件跳转通常使用条件跳转指令,如JZ(跳转如果零)、JNZ(跳转如果非零)、JMP(无条件跳转)等。

这些指令根据CPU的状态寄存器中的条件码标志来决定是否跳转到指定的标签处执行。

汇编语言复习资料

汇编语言复习资料

一、数据传送指令1*通用数据传送指令MOV(Move)传送PUSH(Push onto the stack)进栈POP(Pop from the stack)出栈XCHG(Exchange)交换*MOV指令格式为: MOV DST,SRC执行的操作:(DST)<-(SRC)*PUSH进栈指令格式为:PUSH SRC执行的操作:(SP)<-(SP)-2((SP)+1,(SP))<-(SRC)*POP出栈指令格式为:POP DST执行的操作:(DST)<-((SP+1),(SP))(SP)<-(SP)+2*XCHG 交换指令格式为:XCHG OPR1,OPR2执行的操作:(OPR1)<-->(OPR2)2*累加器专用传送指令IN(Input) 输入OUT(Output) 输出XLAT(Translate) 换码这组指令只限于使用累加器AX或AL传送信息* *IN 输入指令长格式为: IN AL,PORT(字节)IN AX,PORT(字)执行的操作: (AL)<-(PORT)(字节)(AX)<-(PORT+1,PORT)(字)短格式为: IN AL,DX(字节)IN AX,DX(字)执行的操作: AL<-((DX))(字节)AX<-((DX)+1,DX)(字)*OUT 输出指令长格式为: OUT PORT,AL(字节)OUT PORT,AX(字)执行的操作: (PORT)<-(AL)(字节)(PORT+1,PORT)<-(AX)(字)短格式为: OUT DX,AL(字节)OUT DX,AX(字)执行的操作: ((DX))<-(AL)(字节)((DX)+1,(DX))<-AX(字)在IBM-PC机里,外部设备最多可有65536个I/O端口,端口(即外设的端口地址)为0000~FFFFH*其中前256个端口(0~FFH)可以直接在指令中指定,这就是长格式中的PORT,此时机器指令用二个字节表示,第二个字节就是端口号*所以用长格式时可以在指定中直接指定端口号,但只限于前256个端口*当端口号>=256时,只能使用短格式,此时,必须先把端口号放到DX寄存器中(端口号可以从0000到0FFFFH),然后再用IN或OUT指令来传送信息*XLAT 换码指令格式为: XLAT OPR或: XLAT执行的操作:(AL)<-((BX)+(AL))3*有效地址送寄存器指令LEA(Load effective address)有效地址送寄存器LDS(Load DS with Pointer)指针送寄存器和DSLES(Load ES with Pointer)指针送寄存器和ES*LEA 有效地址送寄存器格式为: LEA REG,SRC执行的操作:(REG)<-SRC指令把源操作数的有效地址送到指定的寄存器中*LDS 指针送寄存器和DS指令格式为: LDS REG,SRC执行的操作:(REG)<-(SRC)(DS)<-(SRC+2)把源操作数指定的4个相继字节送到由指令指定的寄存器及DS寄存器中*该指令常指定SI寄存器**LES 指针送寄存器和ES指令格式为: LES REG,SRC执行的操作: (REG)<-(SRC)(ES)<-(SRC+2)把源操作数指定的4个相继字节送到由指令指定的寄存器及ES寄存器中*该指令常指定DI寄存器*4*标志寄存器传送指令LAHF(Load AH with flags)标志送AHSAHF(store AH into flags)AH送标志寄存器PUSHF(push the flags) 标志进栈POPF(pop the flags) 标志出栈*LAHF 标志送AH格式为: LAHF执行的操作:(AH)<-(PWS的低字节)*SAHF AH送标志寄存器格式为: SAHF执行的操作:(PWS的低字节)<-(AH)*PUSHF 标志进栈格式为: PUSHF执行的操作:(SP)<-(SP)-2((SP)+1,(SP))<-(PSW)*POPF 标志出栈格式为: POPF执行的操作:(PWS)<-((SP)+1,(SP))(SP)<-(SP+2)二、算术指令1*加法指令ADD(add)加法ADC(add with carry)带进位加法INC(increment)加1*ADD 加法指令格式: ADD DST,SRC执行的操作:(DST)<-(SRC)+(DST)*ADC 带进位加法指令格式: ADC DST,SRC执行的操作:(DST)<-(SRC)+(DST)+CF*ADD 加1指令格式: INC OPR执行的操作:(OPR)<-(OPR)+12*减法指令SUB(subtract)减法SBB(subtract with borrow)带借位减法DEC(Decrement)减1NEG(Negate)求补CMP(Compare)比较*SUB 减法指令格式: SUB DST,SRC执行的操作:(DST)<-(DST)-(SRC)*SBB 带借位减法指令格式: SBB DST,SRC执行的操作:(DST)<-(DST)-(SRC)-CF*DEC 减1指令格式: DEC OPR执行的操作:(OPR)<-(OPR)-1*NEG 求补指令格式: NEG OPR执行的操作:(OPR)<- -(OPR)*CMP 比较指令格式: CMP OPR1,OPR2执行的操作:(OPR1)-(OPR2)该指令与SUB指令一样执行减法操作,但不保存结果,只是根据结果设置条件标志西半球*3*乘法指令MUL(Unsigned Multiple)无符号数乘法IMUL(Signed Multiple)带符号数乘法*MUL 无符号数乘法指令格式: MUL SRC执行的操作:字节操作数:(AX)<-(AL)*(SRC)字操作数:(DX,AX)<-(AX)*(SRC)*IMUL 带符号数乘法指令格式: IMUL SRC执行的操作:与MUL相同,但必须是带符号数,而MUL是无符号数*4*除法指令DIV(Unsigned divide)无符号数除法IDIV(Signed divide)带符号数除法CBW(Convert byte to word)字节转换为字CWD(Contert word to double word)字转换为双字*DIV 无符号数除法指令格式: DIV SRC执行的操作:字节操作:(AL)<-(AX)/(SRC)的商(AH)<-(AX)/(SRC)的余数字操作: (AX)<-(DX,AX)/(SRC)的商(AX)<-(DX,AX)/(SRC)的余数*IDIV 带符号数除法指令格式: DIV SRC执行的操作:与DIV相同,但操作数必须是带符号数,商和余数也均为带符号数,且余数的符号与被除数的符号相同**CBW 字节转换为字指令格式: CBW执行的操作:AL的内容符号扩展到AH*即如果(AL)的最高有效位为0,则(AH)=00;如(AL)的最高有效位为1,则(AH)=0FFH*CWD 字转换为双字指令格式: CWD执行的操作:AX的内容符号扩展到DX*即如(AX)的最高有效位为0,则(DX)=0;否则(DX)=0FFFFH*这两条指令都不影响条件码*三、逻辑指令1*逻辑运算指令AND(and) 逻辑与OR(or) 逻辑或NOT(not) 逻辑非XOR(exclusive or)异或TEST(test) 测试*AND 逻辑与指令格式: AND DST,SRC执行的操作:(DST)<-(DST)^(SRC)*OR 逻辑或指令格式: OR DST,SRC执行的操作:(DST)<-(DST)V(SRC)*NOT 逻辑非指令格式: NOT OPR执行的操作:(OPR)<-(OPR)*XOR 异或指令格式: XOR DST,SRC执行的操作:(DST)<-(DST)V(SRC)*TEST 测试指令格式: TEST OPR1,OPR2执行的操作:(DST)^(SRC)两个操作数相与的结果不保存,只根据其特征置条件码2*移位指令SHL(shift logical left) 逻辑左移SAL(shift arithmetic left) 算术左移SHR(shift logical right) 逻辑右移SAR(shift arithmetic right) 算术右移ROL(Rotate left) 循环左移ROR(Rotate right) 循环右移RCL(Rotate left through carry) 带进位循环左移RCR(Rotate right through carry) 带进位循环右移格式: SHL OPR,CNT(其余的类似)其中OPR可以是除立即数以外的任何寻址方式*移位次数由CNT决定,CNT可以是1或CL*循环移位指令可以改变操作数中所有位的位置;移位指令则常常用来做乘以2除以2操作*其中算术移位指令适用于带符号数运算,SAL用来乘2,SAR用来除以2;而逻辑移位指令则用来无符号数运算,SHL用来乘2,SHR用来除以2*四、串处理指令1*与REP相配合工作的MOVS,STOS和LODS指令*REP重复串操作直到(CX)=0为上格式: REP string primitive其中String Primitive可为MOVS,LODS或STOS指令执行的操作:1)如(CX)=0则退出REP,否则往下执行*2)(CX)<-(CX)-13)执行其中的串操作4)重复1)~3)*MOVS 串传送指令格式:可有三种MOVS DST,SRCMOVSB(字节)MOVSW(字)其中第二、三种格式明确地注明是传送字节或字,第一种格式则应在操作数中表明是字还是字节操作,例如:MOVS ES:BYTE PTR[DI],DS:[SI]执行的操作:1)((DI))<-((SI))2)字节操作:(SI)<-(SI)+(或-)1,(DI)<-(DI)+(或-)1当方向标志DF=0时用+,当方向标志DF=1时用-3)字操作:(SI)<-(SI)+(或-)2,(DI)<-(DI)+(或-)2当方向标志DF=0时用+,当方向标志DF=1时用-该指令不影响条件码**CLD(Clear direction flag)该指令使DF=0,在执行串操作指令时可使地址自动增量;*STD(Set direction flag)该指令使DF=1,在执行串操作指令时可使地址自动减量**STOS 存入串指令格式: STOS DSTSTOSB(字节)STOSW(字)执行的操作:字节操作:((DI))<-(AL),(DI)<-(DI)+-1字操作: ((DI))<-(AX),(DI)<-(DI)+-2该指令把AL或AX的内容存入由(DI)指定的附加段的某单元中,并根据DF的值及数据类型修改DI的内容,当它与REP联用时,可把AL或AX的内容存入一个长度为(CX)的缓冲区中* *LODS 从串取指令格式: LODS SRCLODSBLODSW执行的操作:字节操作:(AL)<-((SI)),(SI)<-(SI)+-1字操作: (AX)<-((SI)),(SI)<-(SI)+-2该指令把由(SI)指定的数据段中某单元的内容送到AL或AX中,并根据方向标志及数据类型修改SI的内容*指令允许使用段跨越前缀来指定非数据段的存储区*该指令也不影响条件码*一般说来,该指令不和REP联用*有时缓冲区中的一串字符需要逐次取出来测试时,可使用本指令*2*与REPE/REPZ和REPNZ/REPNE联合工作的CMPS和SCAS指令*REPE/REPZ 当相等/为零时重复串操作格式: REPE(或REPZ) String Primitive其中String Primitive可为CMPS或SCAS指令*执行的操作:1)如(CX)=0或ZF=0(即某次比较的结果两个操作数不等)时退出,否则往下执行2)(CX)<-(CX)-13)执行其后的串指令4)重复1)~3)*REPNE/REPNZ 当不相等/不为零时重复串操作格式: REPNE(或REPNZ) String Primitive其中String Primitive可为CMPS或SCAS指令执行的操作:除退出条件(CX=0)或ZF=1外,其他操作与REPE完全相同**CMPS 串比较指令格式: CMP SRC,DSTCMPSBCMPSW执行的操作:1)((SI))-((DI))2)字节操作:(SI)<-(SI)+-1,(DI)<-(DI)+-1字操作: (SI)<-(SI)+-2,(DI)<-(DI)+-2指令把由(SI)指向的数据段中的一个字(或字节)与由(DI)指向的附加段中的一个字(或字节)相减,但不保存结果,只根据结果设置条件码,指令的其它特性和MOVS指令的规定相同**SCAS 串扫描指令格式: SCAS DSTSCASBSCASW执行的操作:字节操作:(AL)-((DI)),(DI)<-(DI)+-1&nbsp; 字操作: (AL)-((DI)),(DI)<-(DI)+-2该指令把AL(或AX)的内容与由(DI)指定的在附加段中的一个字节(或字)进行比较,并不保存结果,只根据结果置条件码*指令的其他特性和MOVS的规定相同*五、控制转移指令1*无条件转移指令*JMP(jmp) 跳转指令1)段内直接短转移格式:JMP SHORT OPR执行的操作:(IP)<-(IP)+8位位移量2)段内直接近转移格式:JMP NEAR PTR OPR执行的操作:(IP)<-(IP)+16位位移量3)段内间接转移格式:JMP WORD PTR OPR执行的操作:(IP)<-(EA)4)段间直接(远)转移格式:JMP FAR PTR OPR执行的操作:(IP)<-OPR的段内偏移地址(CS)<-OPR所在段的段地址5)段间间接转移格式:JMP DWORD PTR OPR执行的操作:(IP)<-(EA)(CS)<-(EA+2)2*条件转移指令1)根据单个条件标志的设置情况转移*JZ(或JE)(Jump if zero,or equal) 结果为零(或相等)则转移格式:JE(或JZ) OPR测试条件:ZF=1*JNZ(或JNE)(Jump if not zero,or not equal) 结果不为零(或不相等)则转移格式:JNZ(或JNE) OPR测试条件:ZF=0*JS(Jump if sign) 结果为负则转移格式: JS OPR测试条件:SF=1*JNS(Jump if not sign) 结果为正则转移格式:JNS OPR测试条件:SF=0*JO(Jump if overflow) 溢出则转移格式: JO OPR测试条件:OF=1*JNO(Jump if not overflow) 不溢出则转移格式: JNO OPR测试条件:OF=0*JP(或JPE)(Jump if parity,or parity even) 奇偶位为1则转移格式: JP OPR测试条件:PF=1*JNP(或JPO)(Jump if not parity,or parity odd) 奇偶位为0则转移格式: JNP(或JPO) OPR测试条件:PF=0*JB(或JNAE,JC)(Jump if below,or not above or equal,or carry) 低于,或者不高于或等于,或进位位为1则转移格式:JB(或JNAE,JC) OPR测试条件:CF=1*JNB(或JAE,JNC)(Jump if not below,or above or equal,or not carry) 不低于,或者高于或者等于,或进位位为0则转移格式:JNB(或JAE,JNC) OPR测试条件:CF=02)比较两个无符号数,并根据比较的结果转移*JB(或JNAE,JC)格式:同上*JNB(或JAE,JNC)格式:同上*JBE(或JNA)(Jump if below or equal,or not above) 低于或等于,或不高于则转移格式:JBE(或JNA) OPR测试条件:CFVZF=1*JNBE(或JA)(Jump if not below or equal,or above) 不低于或等于,或者高于则转移格式:JNBE(或JA) OPR测试条件:CFVZF=03)比较两个带符号数,并根据比较的结果转移*JL(或LNGE)(Jump if less,or not greater or equal) 小于,或者不大于或者等于则转移格式:JL(或JNGE) OPR测试条件:SFVOF=1*JNL(或JGE)(Jump if not less,or greater or equal)不小于,或者大于或者等于则转移格式:JNL(或JGE) OPR测试条件:SFVOF=0*JLE(或JNG)(Jump if less or equal,or not greater) 小于或等于,或者不大于则转移格式:JLE(或JNG) OPR测试条件:(SFVOF)VZF=1*JNLE(或JG)(Jump if not less or equal,or greater) 不小于或等于,或者大于则转移格式:JNLE(或JG) OPR测试条件:(SFVOF)VZF=04)测试CX的值为0则转移指令*JCXZ(Jump if CX register is zero) CX寄存器的内容为零则转移格式:JCXZ OPR测试条件:(CX)=0注:条件转移全为8位短跳!3*循环指令*LOOP 循环指令格式: LOOP OPR测试条件:(CX)<>0*LOOPZ/LOOPE 当为零或相等时循环指令格式: LOOPZ(或LOOPE) OPR测试条件:(CX)<>0且ZF=1*LOOPNZ/LOOPNE 当不为零或不相等时循环指令格式: LOOPNZ(或LOOPNE) OPR测试条件:(CX)<>0且ZF=0这三条指令的步骤是:1)(CX)<-(CX)-12)检查是否满足测试条件,如满足则(IP)<-(IP)+D8的符号扩充*4*子程序*CALL调用指令*RET返回指令5*中断*INT指令格式: INT TYPE或INT执行的操作:(SP)<-(SP)-2((SP)+1,(SP))<-(PSW)(SP)<-(SP)-2((SP)+1,(SP))<-(CS)(SP)<-(SP)-2((SP)+1,(SP))<-(IP)(IP)<-(TYPE*4)(CS)<-(TYPE*4+2)*INTO 若溢出则中断执行的操作:若OF=1则:; (SP)<-(SP)-2((SP)+1,(SP))<-(PSW)(SP)<-(SP)-2((SP)+1,(SP))<-(CS)(SP)<-(SP)-2((SP)+1,(SP))<-(IP)(IP)<-(10H)(CS)<-(12H)*IRET 从中断返回指令格式: IRET执行的操作:(IP)<-((SP)+1,(SP))(SP)<-(SP)+2(CS)<-((SP)+1,(SP))(SP)<-(SP)+2(PSW)<-((SP)+1,(SP))(SP)<-(SP)+2六、处理机控制指令1*标志处理指令*CLC进位位置0指令(Clear carry)CF<-0*CMC进位位求反指令(Complement carry)CF<-CF *STC进位位置1指令(Set carry)CF<-1*CLD方向标志置0指令(Clear direction)DF<-0*STD方向标志置1指令(Set direction)DF<-1*CLI中断标志置0指令(Clear interrupt)IF<-0*STI中断标志置1指令(Set interrupt)IF<-02*其他处理机控制指令NOP(No Opreation) 无操作HLT(Halt) 停机WAIT(Wait) 等待ESC(Escape) 换码LOCK(Lock) 封锁这些指令可以控制处理机状态*这们都不影响条件码**NOP 无操作指令该指令不执行任何操作,其机器码占有一个字节,在调试程序时往往用这条指令占有一定的存储单元,以便在正式运行时用其他指令取代**HLT停机指令该指令可使机器暂停工作,使处理机处于停机状态以便等待一次外部中断到来,中断结束后可继续执行下面的程序**WAIT等待指令该指令使处理机处于空转状态,它也可以用来等待外部中断的发生,但中断结束后仍返回WAIT指令继续德行**ESC换码指令格式ESC mem其中mem指出一个存储单元,ESC指令把该存储单元的内容送到数据总线去*当然ESC指令不允许使用立即数和寄存器寻址方式*这条指令在使用协处理机(Coprocessor)执行某些操作时,可从存储器指得指令或操作数*协处理机(如8087)则是为了提高速度而可以选配的硬件**LOCK封锁指令该指令是一种前缀,它可与其他指令联合,用来维持总线的锁存信号直到与其联合的指令执行完为止*当CPU与其他处理机协同工作时,该指令可避免破坏有用信息*。

《汇编语言》复习提纲

《汇编语言》复习提纲

《汇编语言程序设计》复习提纲第二章 80X86 计算机组织1.计算机的硬件构成5部分,总线的分类与名称.2.中央处理机重点是 80X86 寄存器组*程序可见的寄存器与程序不可见的寄存器寄存器分类:通用寄存器— AX,BX,CX,DX,BP,SI,DI 16位专用寄存器— IP,SP,FLAGS 16位段寄存器— CS,DS,ES,SS 16位flags条件码标志位名称及作用3.存储器—存储器的编址方式,存储单元的地址,数在存储器中的存储格式4.存储器分段和物理地址的形成:(1) 在 8086/8088 系统中,存储器是分段组织的,存储器物理地址计算公式。

(2)在1M 字节内存空间中,若各段互不重叠且每段长均为64K,可以分成多少个段。

小段的长度16字节。

(3)段内偏移地址是几位二进制数,每段最长为多少字节。

(4)如果存储器地址表示为2F00:1400,指出该存储单元段地址,偏移地址和物理地址。

(5)程序分段与四个段寄存器关系。

(6) 在程序执行过程中,代码段的段地址存放在哪里?偏移地址存放在哪里?堆栈段的段地址存放在哪里,栈顶数据的偏移地址存放在哪里?(7)写出指令存放单元物理地址的计算公式,栈顶数据物理地址的计算公式. (8)写出可用于寻址的通用寄存器名.第三章 80X86的指令系统和寻址方式一.寻址方式与物理地址计算1.七种寻址方式熟练掌握8086/8088与数据有关的七种寻址方式,以及相应的存储单元物理地址的计算,能指出各寻址方式的名称。

判断指令语句的正确性A. PUSH DSB. SUB AX,[SI+DI]C。

XOR AX,VAS[BX] ;VAS字变量D. MOV DH,100E. OR AX,[CL]F。

MUL VAS ;VAS是字变量G.INC CXH. MOV DX, [BX+BP] ;错,两个基址I。

SBB CX,VAS[BP+DI];正确,在数据区取数据J。

POP ESK。

最新有答案---14-15-1-汇编语言复习资料

最新有答案---14-15-1-汇编语言复习资料

最新有答案---14-15-1-汇编语言复习资料汇编语言复习资料第一部分选择题第一章基础知识1.数组array在数据段的定义如下所示,在内存空间的存储值是什么,选出正确的一项(B )array db 1,‘1’,0AH,‘A’,-2A、1H 1H 0AH 0AH 82hB、1H 31H 0AH 41H FEHC、1 1 0A 0A 12hD、31H 31H 41H 41H 02h2.debug命令中显示内存单元内容的命令是( B )A、aB、dC、eD、r3.debug命令中反汇编命令是(D )A、qB、gC、tD、u4.在DEBUG下,修改寄存器AX的命令是___B_。

A.U AX B.R AX C.R D.A AX5.从200H开始反汇编的DEBUG命令是A____。

A.U 200 B.R 200 C.D 200 D.U6.仅查看用户程序中数据段10号存储单元的DEBUG命令是A____。

A.D DS:A A B.D DS:AC.D DS:10 10 D.D DS:107.计算机编程语言的发展顺序是(A )A、机器语言汇编语言高级语言B、汇编语言机器语言高级语言C、高级语言汇编语言机器语言D、高级语言机器语言汇编语言8.将124转换成十六进制数的结果是_A____。

A.7CH B.7DH C.7EH D.7BH9.计算机对字符、符号采用统一的二进制编码。

其编码采用的是_C_____。

A.BCD码B.二进制码C.ASCII D.十六进制码第二章80x86计算机组织10.对汇编语言源程序进行翻译的程序是__B___。

A.连接程序B.汇编程序C.编译程序D.目标程序11.在汇编语言中,能够翻译成二进制代码的指令是__A__。

A.汇编指令B.伪指令C.机器指令D.宏指令12.将高级语言程序翻译成机器语言代码的实用程序是___A___。

A.编译程序B.汇编程序C.解释程序D.目标程序13.下列寄存器中,哪一个不能用来保存偏移地址(A )A、AXB、SIC、DID、BX14.下列哪个寄存器是用来保存堆栈栈顶元素的地址(B )A、BPB、SPC、SID、DI15.程序流程是由下列那对寄存器组来控制的( C )A、DS: SIB、SS: SPC、CS: IPD、ES: DI16. 用来保存现场状态的寄存器是下列哪一个(C )A、CSB、AXC、FLAGSD、IP17.在标志寄存器中表示溢出的标志是__C___。

汇编语言考试复习资料

汇编语言考试复习资料

汇编语⾔考试复习资料汇编语⾔期末复习资料整理第⼆章1、寄存器组(1)通⽤寄存器数据寄存器EAX(32位) AX(16位) AH(8位)(⾼位) AL(8位)(低位)累加器EBX(32位) BX(16位) BH(8位)(⾼位) BL(8位)(低位)基址变址ECX(32位) CX(16位) CH(8位)(⾼位)CL(8位)(低位)计数器EDX(32位) DX(16位) DH(8位)(⾼位) DL(8位)(低位)数据指针或变址寄存器ESP(32位) SP(16位)堆栈指针寄存器EBP(32位) BP(16位)基址指针寄存器EDI(32位) DI(16位)⽬的变址寄存器ESI(32位) SI(16位)源变址寄存器(2)专⽤寄存器EIP(32位) IP(16位)指令指针寄存器EFLAGS(32位) FLAGS(16位)标志寄存器ESP (32位) SP(16位)堆栈指针寄存器2、标志位的符号表⽰、3、段寄存器CS(16位)代码段 DS(16位)数据段SS(16位)堆栈段 ES(16位)附加段4、段寄存器和相应存放偏移地址的寄存器之间的默认组合第三章1、七种寻址⽅式(举例)⽴即寻 MOV AX,3069H寄存器寻 MOV AL,BH在内存中的五种寻址直接寻 MOV AX,[2000H]寄存器间接寻 MOV AX,[BX]寄存器相对寻 MOV AX,COUNT[SI] 或者 MOV AX,[SI+COUNT](不推荐) 基址变址寻址 MOV AX,[BP][DI]相对基址变址寻址 MOV AX,MASK[BX][SI]2、指令系统I.数据传送指令(1)通⽤数据传送指令MOV 传送MOVSX 带符号扩展传送⽤源操作数的符号位来填充⽬的操作数的⾼位数据位。

例:MOVSX EAX,CL把CL寄存器中的8位数,符号扩展为32位数,送到EAX寄存器中。

MOVZX 带零扩展传送恒⽤0来填充⽬的操作数的⾼位数据位例:MOVZX DX,AL把AL寄存器中的8位数,零扩展成16位数,送到DX寄存器中。

汇编语言复习资料

汇编语言复习资料

汇编语言复习资料一.名词解释(16分8道题15个里选8个)存储器:存储程序数据等信息的记忆装置,微机有ram和rom两种。

堆栈:以后进先出方式工作的存储空间。

状态标志:记录指令操作结果的标志,共6位:of,sf,zf,af,pf和cf。

段寄存器:保存各逻辑段的起始地址的寄存器,8086?8088机有4个:cs,ds,ss,es。

物理地址:唯一代表存储空间中每个字节单元地址。

汇编语言:用指令的助记符、符号地址、标号等符号书写程序的语言。

机器语言:能被计算机识别的语言。

汇编程序:把汇编语言程序翻译成机器语言程序的系统程序。

指令:告诉cpu要执行的操作(一般还要指出操作数地址),在程序运行时执行。

伪指令:由汇编程序在汇编过程中执行的指令。

Cpu:分析、控制并执行指令的部件,由算术逻辑部件alu和寄存器组成。

Ip:指示下一条要执行的指令的地址。

Sp:保存当前栈顶地址的寄存器。

控制地址:控制操作的标志,如df位。

连接程序:把若干个模块连接起来成为可执行文件的系统程序。

二.判断(10个)考点:(1)mov指令ppt中(2)第一章中n个二进制数表示的数的范围,分为有符号数和无符号数范围(3)asc码表(空格、回车、数字、字母)后面有一个程序分析题。

记ABCZabcz对应的值(4)上机debug中命令,如:—d(5)dup下面判断题必考1.MOV DS,AX ( )2.MOV CS,AX ( )3.MOV CH,4050H ( )4.MOV DL,5BH ( )5.MOV DX,5BH ( )6.MOV DX,AL ( )7.MOV V A1,V A2 ( )8.MOV 45,DL ( )三.解答题(7道){(1)段地址,偏移地址的范围注:课件上有个小例子(2)与、或、异或三个指令应用(3)栈指令实现交换[PUSH PUSH POP POP]}注意:问题问得很详细,注意不要少写答案1.书上3.8题假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名V AL的偏移地址值为0050H,是指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1)MOV AX,0ABH 立即数寻址无物理地址(2)MOV AX,BX 寄存器寻址无物理地址(3)MOV AX,[100] 直接寻址20100H(4)MOV AX,VAL 直接寻址20050H(5) MOV AX,[BX] 寄存器间接寻址20100H(6) MOV AX,ES:[BX] 直接寻址21100H(7) MOV AX,[BP] 寄存器间接寻址20010H(8)MOV AX,[SI] 寄存器间接寻址200A0H(9) MOV AX,[BX+10] 寄存器相对寻址20110H(10)MOV AX,VAL[BX] 寄存器相对寻址20150H(11) MOV AX,[BX][SI] 基址变址寻址201A0H(12) MOV AX,VAL[BX][SI] 相对基相变址寻址201F0H2.书上3.10如TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,试问以下两条指令有什么区别?指令执行完后AX寄存器的内容是什么?(1)MOV AX,TABLE 是把符号地址TABLE里的内容送到AX里,指令执行完后,(AX)=1234H(2)LEA AX,TABLE 是把符号地址TABLE 的有效地址(这里是偏移量)送到指定寄存器AX里,指令执行完后,(AX)=0032H书上3.15求出一下各十六进制数与十六进制数62A0之和,并根据结果设置标志位SF、ZF、CF和OF的值。

汇编语言复习资料

汇编语言复习资料

汇编语言复习资料【引言】汇编语言作为计算机科学中的重要一环,是掌握计算机底层工作原理的基础。

本文将为读者提供一份汇编语言的复习资料,以帮助读者巩固对汇编语言的理解,并加深对底层计算机工作过程的认识。

【一、汇编语言基础知识】1.1 汇编语言的概念和作用汇编语言是一种低级别的计算机语言,与机器语言一一对应,用于编写和调试底层程序。

掌握汇编语言可以更加直接地操作计算机硬件资源,提高程序的执行效率。

1.2 汇编指令与机器指令汇编指令是汇编语言中最基本的单位,包括机器指令和操作数。

机器指令是计算机能够识别和执行的指令,由操作码和操作数组成。

1.3 寄存器和内存寄存器是计算机内部存储器的一种,用于存储和操作数据。

常见的寄存器包括通用寄存器、指针寄存器和标志寄存器。

内存是计算机中的主要存储器,用于存储指令和数据。

1.4 数据表示和运算汇编语言中使用不同的数据格式表示整数、浮点数和字符等数据类型,并提供相应的运算指令进行数据操作。

【二、汇编语言的程序结构】2.1 汇编语言程序的基本结构汇编语言程序包括数据段、代码段和堆栈段。

数据段用于定义和初始化数据,代码段包含程序的执行指令,堆栈段用于存储程序执行过程中的临时数据。

2.2 汇编语言程序的组织方式汇编语言程序可以使用汇编宏、过程和函数来实现模块化组织,提高代码的可读性和可维护性。

2.3 汇编语言程序的调试方法汇编语言程序的调试可以使用调试器进行单步执行、断点设置和变量查看等操作,以实时监控程序的运行状态。

【三、常用的汇编语言指令】3.1 数据定义指令数据定义指令用于定义变量和常量,并分配存储空间。

常用的数据定义指令包括DB、DW和DD等。

3.2 算术和逻辑指令算术和逻辑指令用于进行加减乘除和逻辑运算等操作。

常见的算术和逻辑指令包括ADD、SUB、MUL、DIV和AND、OR等。

3.3 分支和循环指令分支和循环指令用于根据条件进行跳转或循环执行。

常用的分支和循环指令包括JMP、JZ、JCXZ和LOOP等。

《汇编语言》复习提纲

《汇编语言》复习提纲

《汇编语言》复习提纲一、引言A. 简述汇编语言的定义和作用B. 指明复习汇编语言的目的和重要性二、基础知识回顾A. 计算机体系结构基础1. CPU和内存的功能和交互2. 寄存器的种类和作用3. 指令集的概念和分类B. 汇编语言的概念和特点1. 汇编指令和机器指令的关系2. 汇编语言与高级语言的对比3. 汇编语言的优缺点三、汇编语言基本语法和结构A. 数据类型和数据存储1. 字节、字和双字等数据类型2. 内存的寻址方式3. 数据的声明和访问方法B. 汇编指令的格式和使用方法1. 指令的组成和语法2. 数据传输指令和算术指令3. 条件判断和跳转指令4. 循环和函数的实现方式四、汇编语言程序设计A. 程序设计的基本步骤1. 确定程序的功能和需求2. 设计算法和数据结构3. 编写和调试汇编程序B. 典型实例分析和解析1. 计算两个数的和与差2. 查找和排序算法的实现3. 字符串处理和IO操作的案例五、汇编语言的高级特性A. 中断和异常处理1. 中断的分类和处理2. 异常的概念和处理机制B. 内存管理和扩展1. 内存的分段和分页机制2. 内存扩展和地址映射C. 硬件接口和外设控制1. 端口和寄存器的配置和读写2. 外设控制和驱动程序的编写六、实践项目和综合应用A. 汇编语言与其他编程语言的结合1. 汇编语言与C/C++的接口2. 汇编语言在嵌入式系统中的应用B. 汇编语言程序的调试和优化1. 调试工具和技巧的应用2. 代码优化和性能提升的方法七、总结和展望A. 总结汇编语言复习的重点内容B. 展望汇编语言的发展和应用领域八、参考资料A. 书籍和文献资料B. 在线教程和学习资源以上提纲为复习《汇编语言》的参考大纲,希望能够帮助你系统地复习和理解汇编语言的基本概念、语法和应用。

在复习过程中,建议结合具体的例子和实践项目,加深对汇编语言的理解和应用能力。

祝你复习顺利,取得好成绩!。

《汇编语言》综合复习资料

《汇编语言》综合复习资料

《汇编语言》综合复习资料一、单项选择题在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题后的括号内:1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。

(A) 无符号十进制数136 (B) 带符号十进制数 -120(C) 压缩型BCD码十进制数88 (D) 8位二进制数 -8的补码表示2.指令指针寄存器是()。

(A) IP (B) SP (C) BP (D) BX3.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )(A) 1400H (B) 77F8H (C) 0000H (D) 0FFFFH4.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()。

(A) MOV AL,00H (B) AND AL,00H(C) XOR AL,AL (D) SUB AL,AL5.下列指令执行后总是使CF=0,OF=0的是()。

(A) AND (B) NEG (C) NOT (D) INC6.在下列语句中,BUFFER称为( )BUFFER DB 01H,0AH(A) 符号 (B) 变量(C) 助记符(D) 标号7.DATA SEGMENTTA1 DW 0102H,0304H,0506HTA2 DB 02H,03H,04HMOV BX,DS:[0006H]AND BX,0FFHOR BH,[BX]上述指令序列运行后,BX的内容是()。

(A) 0605H (B) 0402H (C) 0606H (D) 0204H8.当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是()。

(A) JLE (B) JNL (C) JNLE (D) JL9.下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为()TEST BH,01H_____K1(A) JNE (B) JZ (C) JS (D) JC10.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是()。

汇编复习资料完整版

汇编复习资料完整版

汇编语言复习资料题型及分值分布一、判断题15分15道题1分/题二、选择题40分20道题2分/题三、填空题30分15个空2分/题四、简答题10分1道题10分/题五、应用题5分1道题5分/题(来源于实验课唐都仪器上所做的实验)8255、8253、8259的结构、引脚信号和功能、工作方式,编程的步骤。

(P170.169.标题.178.174的例5-1,8253,8259雷同)(特别注意8255、8259)8255的端口有哪些。

(200H~207H:PA~PC:200H~202H,OCW:203H)8253的输入/输出频率与计算初值的关系(fout=fin/N)。

8259的功能(响应外部可屏蔽中断并交给8086处理,注意!8259自己不执行中断服务程序)。

所有的寻址方式的定义,给出代码,要求判断出这是哪一种寻址方式,以及算出具体的偏移地址,并且判断出寻址方式是否正确。

(P48 ~P53 8086/8088的寻址方式,8种)常用的中断调用的功能号(附录)。

物理地址、逻辑地址、段地址、偏移地址的含义物理地址:8086存储器系统中,20位地址总线()的最大寻址存储空间是=1M 字节.其地址范围为00000~FFFFFH。

这个20位的地址叫做物理地址。

逻辑地址:在有地址变换功能的计算机中,访问指令给出的地址(操作数) 叫逻辑地址,也叫相对地址。

要经过寻址方式的计算或变换才得到内存储器中的物理地址(物理地址= 段值* 10H + 段内偏移)。

段地址:为了简化操作要求各个逻辑段首地址的最低4位的地址码总是为“0”。

这样,段寄存器只要存放相应段首地址的高16位,称作段基址或段地址。

偏移地址:因为一个段最多为64K字节,因此在段地址确定以后,对段内单元的访问只要16位的段内相对地址就可以实现。

段内的相对地址称作偏移地址(也叫有效地址)。

DEBUG的所有命令的含义a (Assemble) 逐行汇编a [address] ,c (Compare) 比较两内存块c range address ,d (Dump) 内存16进制显示d [address]或 d [range] ,e (Enter) 修改内存字节e address [list] ,f (fin) 预置一段内存 f range list,g (Go) 执行程序g [=address][address...],h (Hexavithmetic) 制算术运算h value value,i (Input) 从指定端口地址输入i pataddress ,l (Load) 读盘l [address [driver seetor]],m (Move) 内存块传送m range address,n (Name) 置文件名n filespec [filespec...],o (Output) 从指定端口地址输出o portadress byte ,q (Quit) 结束q,r (Register) 显示和修改寄存器r [register name],s (Search) 查找字节串s range list,t (Trace) 跟踪执行t [=address] [value] ,u (Unassemble) 反汇编u [address ]或range ,w (Write) 存盘w [address[driver sector secnum]] ,? 联机帮助?PSW中各个标志位的含义(P20,第6点)。

汇编语言复习提纲资料

汇编语言复习提纲资料

汇编复习提纲第一章数制转换,数的编码,补码的表示数范围,字符的编码,求补运算。

第二章CPU的寄存器,内存地址以及地址分段。

第三章基本指令的功能,对标志位的影响,特殊要求。

寻址方式(特别是与数据有关的7种寻址方式)如PUSH,POP指令执行后SP的变化,neg,sar指令的功能等等。

第四章汇编程序的功能,上机过程,几个基本的伪指令以及指令格式,还有符号和变量的属性,几个常用表达式,如offset,seg等;指令和伪指令的区别。

第五章循环程序的组成,循环控制方式,分支程序设计。

第六章过程定义,参数传递方式(寄存器参数传送,地址表参数传送)第七章宏定义,使用宏功能的顺序(宏定义、宏调用、宏展开)第八章主机与外设之间数据传输控制方式,中断向量表的地址以及中断向量的内容。

对端口用IN和OUT指令从端口输入输出数据。

第九章DOS功能调用,调用方法,1,2,9,a的使用特别注意:数制转换、补码运算以及表示数的范围;字数据在内存的存放方式(给出数据和地址能画出内存使用情况图)寻址方式;各寄存器的名称(给出寄存器号指明其名称)及主要作用(给出寄存器号指明其主要作用、一个字入栈或出栈时SP的变化);求两字之和,并根据结果确定标志位;一些重要的伪指令的使用(段定义、过程定义、程序开始结束、ASSUME、数据定义、完整的汇编程序);考试题型:一、填空题15分二、单项选择题15分三、简答与程序分析题30分四、程序填空题20分五、编程题20分例题如下:1、循环程序可由_循环初始化____,__循环体_,_循环控制___三部分组成。

循环初始化、循环体、循环控制2、ARRAY DB 0,2DUP(1,2),0,3汇编时生成的数据依次是0,1,2,1,2,0,3 。

3、设BX=1152H,偏移量D=3568H,那么指令“ADD D[BX],AL”中目的操作数的有效地址EA= 46BAH 。

46BAH4、在串操作程序中,通常在重复前缀指令REPZ或REPNZ后,选用的串操作指令是或才有实际意义。

汇编语言复习

汇编语言复习

类型:填空、选择、简答、程序阅读与填空、程序设计基础知识、指令系统、程序结构与流程、子程序、宏汇编、中断一、基础知识1、汇编的特点:面向硬件、高效率(时间、空间)2、数制:二进制、十六进制、相互转换、简单的比较大小、3、编码系统:码制,ASCII、BCD(压缩)30h-39h,41h(A),61(a),20h,0Dh,0Ah,00h(NUL)4、二进制计算:按位计算,加减、与或非异或5、CPU模型:控制器、运算器、寄存器(EU、BIU)14个寄存器:(1)Ax Bx Cx Dx (AH,AL)(2)Cs Ds Es Ss(3)SI DI SP BP(4)IP FLAGS6、内存模型:数据如何存放?内存地址如何描述?每个单元为8位(字节:00H-FFH),每个单元有一个编号,这个编号就是地址,“高高低低”原则存放数据地址描述:程序里都采用逻辑地址方式物理地址:×××××H逻辑地址:段:偏移××××H:&&&&H物理与逻辑的转换:段地址后加一个零再加上偏移地址。

X X X X 0H& & &&H7、堆栈模型堆栈:存放临时数据PUSH压栈:sp=sp-2POP出栈:sp=sp+28、寻址方式:(1)立即数(程序里)(2)寄存器(直接)(3)内存:直接寻址:[1023h], NUM寄存器间接:[BX]寄存器相对:23[bx],[bx+23]基址变址:[si][bx],[bx+si],基址:bx,bp, 变址:si,di基址变址相对:34[bx][si],[bx+si+34]二、程序相关1、指令系统:指令语句, MOV AX,BX;(1) MOV、LEA、PUSH、POP(2)ADD、ADC、INCSUB、SBB、DEC、CMPMUL、IMULDIV、IDIV(3)AND、OR、NOT、XOR、TESTSAL、SARSHL、SHRROL、RORRCL、RCR(4)转移类:CF、ZF、SFJxx :JC、JZ(JE)、JS、JNC、JNZ(JNE)、JNS 无符号:JA(Above、JB(Below)有符号:JG(Great)、JL(Little)相等加“E”,“不”加“N”无条件:JMP使用基本方式:xxx 标号循环:LOOP 标号(循环次数首先放在CX里)2、程序结构Data segmentData endsStack segmentStack endsCode segmentStart:Code endsEnd start(1)数据变量定义:X db ?,0,0Y dw 1234h,3040hBuff dw 30 dup(3,20 dup(?,?,?),5)byte ptr, word ptr3、输入与输出Int 21h : 01h 02h 09hMov ah,01hInt 21hMov xx,alMov dl,xxMov ah,02hInt 21hMov dx,xxxxhMov ah,09hInt 21h4、循环:do-while(do-until),while-do多重循环:loop, cx三、子程序、宏汇编、(1) 子程序:定义、调用Fun procpushpopret 6Fun endp子程序需要压栈与出栈;保护现场和恢复现场调用:call Fun (JMP Fun)参数传递:寄存器、内存(全局变量)、堆栈RET nPush axPush bxPush dxCall Fun(2)宏汇编定义、展开、调用Xxxx macro x,y,z54ghdfdffg;endm调用:Xxxx展开:54ghdfdffg;(3)子程序与宏汇编的区别与联系四、中断中断向量(中断服务程序的入口地址CS:IP)、中断向量表(所有中断向量按编号顺序存放在内存的最开始1024个字节里)、中断类型号(编号)、每一个中断向量占4个字节中断向量存放在中断向量表中的起始位置为4×n,其中n是中断类型号。

《汇编语言》复习题库

《汇编语言》复习题库

《汇编语言》复习题库一、单项选择题1、在下列的选项中,能够组成计算机系统的是()。

A、硬件系统和软件系统B、CPU、存储器、输入/输出设备C、操作系统、各种语言D、系统软件和应用软件2、以8086/8088为CPU的微机内存最大容量为。

A、4MBB、1MBC、640KBD、64KB3、下面几个程序中不属于翻译程序的是。

A、汇编程序B、编译程序C、解释程序D、编辑程序4、在下列的选项中,能够组成计算机系统的是()。

A、硬件系统和软件系统B、CPU、存储器、输入/输出设备C、操作系统、各种语言D、系统软件和应用软件5、汇编语言属于()。

A、用户软件B、系统软件C、高级语言D、机器语言6、汇编语言源程序是()程序。

A、不可直接执行的B、可直接执行的C、经汇编程序汇编后就可执行的D、经连接后就可直接执行的7、8086/8088 CPU的寄存器组中,8位的寄存器共有()个。

A、4B、6C、8D、108、如果指令的运算结果为0,则()标志位为1。

A、SFB、OFC、ZFD、CF9、物理地址的形成过程是将段地址左移()位加偏移地址。

A、2B、3C、4D、510、如果某一存储单元的逻辑地址为236FH:1000H。

则物理地址为()。

A、1236FHB、336FHC、336F0HD、246F0H11、如果数据存放在DI的内容为偏移地址的数据段中,设DS=3624H,DI=2200H,则此存储单元的物理地址为()。

A、38440HB、58240HC、25624HD、58240H12、汇编语言属于()。

A、用户软件B、系统软件C、高级语言D、机器语言13、汇编语言源程序经汇编程序汇编后产生的文件的扩展名是()。

A、EXEB、OBJC、ASMD、LST14、中央处理器CPU是由()组成的。

A、运算器B、控制器C、寄存器组D、前三者15、8086/8088 CPU的寄存器组中,16位的寄存器共有()个。

A、10B、12C、13D、1416、在程序执行过程中,IP寄存器始终保存的是()。

汇编语言复习题(附答案)

汇编语言复习题(附答案)

汇编语言复习题注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。

在此文档最后最后附有课后四、六章的答案,大家抓紧时间复习哦!一、选择题1.把要执行的程序与库文件连接起来形成可执行文件的系统程序是( B ) 。

A.汇编程序B.连接程序C.机器语言程序D.源代码程序2.在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是( C )。

A..SS和SPB.DS和DIC.CS和IPD.ES和SI3.为了使主机访问外设方便起见,外设中的每个寄存器给予一个( C )。

A.物理地址B. 逻辑地址C. 端口地址D.段地址4.MOV AX,3064H,该指令中源操作数采用的寻址方式是( A )。

A.立即B.直接C.寄存器相对D.寄存器间接5.换码指令的助记符是( C )。

A. XCHGB. LEASC.XLATD. MOV6.如果A≥B(A、B有符号数)发生转移,应选择的条件转移指令是 ( JGE )。

7.下列符号中,可用作标识符的是( C )。

A.MOVB.AXC.MSG1D.1ABC8.X DB 10H DUP(1,2)内存变量定义语句拥有了( A )个字节的存储空间。

A.20DB.10DC.20HD.10H9.当DF=0时,执行串操作指令MOVSB,变址寄存器SI、DI的值将( C )。

A. 不变B.减1C.加1D.无法确定10.如下指令可将AX寄存器内容改变的是( A )。

A.AND AX , BX B.TEST AX , BX C.CMP AX , BX D.XCHG AX , AX11.16位CPU支持的I/O地址范围是( D )。

A.0~0FFFFFH B.0~0FFFFH C.0~0FFFH D.0~0FFH12.MUL CL指令实现的功能是( A )。

A.无符号乘法:AX← AL×CL B.有符号乘法:AX← AL×CLC.无符号乘法:DX← AL×CL D.有符号乘法:DX← AL×CL13.DOS系统功能调用(INT 21H)中,显示字符串的功能号是( D )。

《汇编语言》复习资料

《汇编语言》复习资料

《微机原理与汇编语言》复习资料一、基本概念1、8088/8086CPU内部寄存器中,AX、BX、CX、DX bp di si是通用寄存器,BX、BP、SI、DI是基址和变址寄存器,CS、DS、ES、SS是段寄存器,此外还有指令指针寄存器IP 和标志位寄存器FLAGS两个控制寄存器,所有寄存器都是16位寄存器,每个寄存器可以存放16位二进制数。

2、8088/8086CPU有三组总线,它们是数据总线、地址总线和控制总线;地址总线是20条,因此它可以寻址的范围是2^20字节。

通常将1024字节称为1K,将2^20字节称为1M。

3、8088/8086CPU的存储器采用分段方式管理,每个段最多可以有64K字节,全部存储空间可以分成16个大小为64K且互相不重叠的段。

4、采用分段方式管理的存储单元的地址分成物理和逻辑地址两种,逻辑地址由段地址和偏移地址两部分构成,段地址是每个存储器段的首地址;偏移地址则是相对于每个段第一个存储单元的偏移量。

段地址存放在段寄存器中,由于8088/8086CPU的段寄存器是16位寄存器,因此在段寄存器中存放的是段地址的16位;而CPU对数据的存取是按物理地址进行的,物理地址和逻辑地址间的关系是PHA=段地址*16+偏移地址逻辑地址=段地址:偏移地址5、存储器中,数据是以字节为单位存放的,它是一个8位二进制数,16位二进制数是2字节,又称为字;每个存储单元可以存放一个字节;一个字则占用两个存储单元,存放时要将低位数据在地址较小的存储单元中。

6、计算机的指令由操作码和操作数构成,它们分别给出计算机执行的操作和所需要的操作数。

7、表示操作数存放的方式称为寻址方式。

088/8086CPU与数据有关的寻址方式有立即、直接、寄存器、寄存器间接、寄存器相对、基址变址、相对基址变址转移有关的寻址有段内直接、段内间接、段间直接、段间间接等几种。

8、8088/8086CPU的指令系统分成六大类,它们是数据传送指令、算术指令、逻辑指令、串指令、控制指令和处理机和杂项指令。

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

《汇编语言》综合复习资料一、单项选择题在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题后的括号内:1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。

(A) 无符号十进制数136 (B) 带符号十进制数 -120(C) 压缩型BCD码十进制数88 (D) 8位二进制数 -8的补码表示2.指令指针寄存器是()。

(A) IP (B) SP (C) BP (D) BX3.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )(A) 1400H (B) 77F8H (C) 0000H (D) 0FFFFH4.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()。

(A) MOV AL,00H (B) AND AL,00H(C) XOR AL,AL (D) SUB AL,AL5.下列指令执行后总是使CF=0,OF=0的是()。

(A) AND (B) NEG (C) NOT (D) INC6.在下列语句中,BUFFER称为( )BUFFER DB 01H,0AH(A) 符号(B) 变量(C) 助记符(D) 标号7.DATA SEGMENTTA1 DW 0102H,0304H,0506HTA2 DB 02H,03H,04HMOV BX,DS:[0006H]AND BX,0FFHOR BH,[BX]上述指令序列运行后,BX的内容是()。

(A) 0605H (B) 0402H (C) 0606H (D) 0204H8.当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是()。

(A) JLE (B) JNL (C) JNLE (D) JL9.下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为()TEST BH,01H_____K1(A) JNE (B) JZ (C) JS (D) JC10.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是()。

(A) TEST BL,4FHJZ NEXT(B) XOR BL,4FHJZ NEXT(C) AND BL,4FHJZ NEXT(D) OR BL,4FHJZ NEXT11.在汇编语言程序中,对END语句的叙述正确的是()。

(A) END语句是一可执行语句 (B) END语句表示程序执行到此结束(C) END语句表示源程序到此结束 (D) END语句在汇编后要产生机器码12.下面的数据传送指令中,错误的操作是()。

(A) MOV SS:[BX+DI],1000H (B) MOV DX,1000H(C) MOV WORD PTR[BX],1000H (D) MOV DS,2000H13.下面指令执行后,变量DAB中的内容是()。

DAW DW 2A05HDAB DB 0FAHMOV AL,BYTE PRT DAWSUB DAB,AL(A) 0DAH (B) 0FAH (C) 0F5H (D) 0D0H14.串操作指令中,目标串操作数的段地址一定在( )寄存器中。

(A) CS (B) SS (C) DS (D) ES15.设数据段中已有: DA1 DB 12H,34HDA2 DW 56H,78H下面有语法错误的句是()(A) ADR1 DW DA1 (B) MOV DA1+1,AX(C) MOV BYTE PTR DA2+1,AL (D) MOV WORD PTR DA1+1,AX16.DEC BYTE PTR[BX]指令中的操作数的数据类型是( )(A) 字(B) 双字(C) 字节(D)四字17.把若干个模块连接起来成为可执行文件的系统程序称为( )。

(A) 连接程序 (B) 汇编程序 (C) 编译程序 (D) 目标程序18.操作数直接存放在指令中,则它的寻址方式是( )。

(A) 直接寻址 (B) 寄存器寻址 (C) 寄存器间接寻址 (D) 立即寻址19.在程序状态字寄存器中,当方向标志DF位为0时,每次操作后使变址寄存器SI和DI( )。

(A) 减量 (B) 增量 (C) 保持不变 (D) 地址减120.八位二进制补码整数的最小值是( )。

(A) -126D (B) -127D (C) -128D (D) -129D21.在微机系统中分析并控制指令执行的部件是()A. 寄存器B. 数据寄存器C.CPU D. EU22.能被计算机直接识别的语言是()A.C语言B.汇编语言C.机器语言D.面向对象语言23.MOV AX,ES:COUNT[DI] 源操作数的寻址方式是( )A. 基址寻址B. 立即寻址C. 变址寻址D. 基址变址寻址24.指令MOV BX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为( )A. 17500HB. 16500HC. 14500HD. 13500H25.在标志寄存器中表示溢出的标志( )A. AFB.CFC. OFD.SF26.当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。

(A) 表示结果中含1的个数为偶数(B) 表示结果中含1的个数为奇数(C) 表示该数为偶数(D) 表示结果中低八位含1的个数为偶数27.汇编语言指令中唯一不可缺少的域是( )A. 标号名字域B. 助记符域C. 操作数域D. 注释域28.已知(DS)=3000H,(SS)=2500H,(BX)=0100H,(BP)=0040H,指令MOV AX,DS:[BP] 源操作数的物理地址是()。

A.25040H B. 30040H C.25100H D. 55040H29.下列传送指令中,有语法错误的指令是()。

A.MOV CS,AX B. MOV DS,AX C. MOV ES,AX D. MOV SS,AX30.指令ADD ES:[DI],AX 和存放在()。

A.寄存器 B. 附加段 C. 堆栈段 D. 代码段二、简答题1.在某子程序的开始处要保护AX,BX,CX三个寄存器信息,在子程序结束时要恢复这三个寄存器信息。

假设恢复现场的指令序列如下,试写出保护现场的指令序列。

POP AXPOP BXPOP CX2.下面的程序段有错吗?若有,请指出错误。

CRAY PROCPUSH AXADD AX,BXRETENDP CRAY3.试根据以下要求,分别写出相应的汇编语言指令。

(1)把AX寄存器和BX寄存器的内容相加,结果存入AX中。

(2)用BX和SI的基址变址寻址方式,把存储器中的一个字节与DL的内容相加,并把结果送回DL中。

(3)把数5EH与AH内容相加,结果送回AH中。

4.对于下面的数据定义,三条MOV指令分别汇编成什么?TAB1 DW 10 DUP(?)TAB2 DB 10 DUP(?)TAB3 DB ‘1234’┇MOV AX,LENGTH TAB1MOV BL,LENGTH TAB2MOV CL,LENGTH TAB35.完成下列操作,分别选用什么指令:(1)将AX的内容,减去0520H,和上次运算的借位;(2)将变量名TABL的段地址送AX;(3)将变量名TABL的偏移地址送AX。

6.假设有如下伪指令:D1 DB 20H DUP(?)D2 DW D1请写出用一条指令实现“取D1的偏移地址=>SI”中的三种方法。

7.已知数据段定义如下:DATA SEGMENTVA DB 10HVB DW 3*20MSG DB ‘HELLO!’COUNT EQU 15BUF DW COUNT DUP(5,3 DUP(1,2),0)DATA ENDS问题:(1)执行 MOV BX , 0FFSET VA后, (BX)=(2)执行 MOV CX , TYPE BUF后, (CX)=(3)经汇编后, BUF占有的存储空间是字节8.在指令系统中,段内. 段间返回均为RET指令。

试回答:(1)执行段内返回RET指令时,执行的操作是:(2)执行段间返回RET指令时,执行的操作是:9.下面的程序段有错吗?若有,请指出错误。

(5分)CRAY PROCPUSH AXADD AX,BXRETENDP CRAY三、程序分析(读程序)题1. A DW 6666HB DW 8888H………PUSH BPUSH APOP BPOP A试回答:(1) 上述程序段执行后,以十六进制表示,(A)=_____H,(B)=_____H(2) 设执行前SP=100H,执行后,以十六进制表示,SP=_____H2.现有下列程序段MOV AX,6540HMOV DX,3210HMOV CL,04SHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR DL,BL试问上述程序段运行后,以十六进制表示,(AX)=_____H(BL)=_____H(DX)=_____H3.分析下面程序段:MOV AX,3456XCHG AX,BXMOV AX,3456SUB AX,BXJE DONEKK:ADD AX,BXDONE:请问该程序段执行完JE DONE语句后,以十六进制表示,(AX)=_____H,(ZF)=_____H4.程序段如下:BLK1 DB 46,84,34,-5,20,122,73………MOV CX,7LEA SI,BLK1NEXT:MOV AL,[SI]INC SITEST AL,81HLOOPZ NEXTMOV BL,[SI]请回答程序段运行后,以十六进制表示,(AL)=______H,(BL)=______H 5.分析下面程序段:MOV AL,200SAR AL,1MOV BL,ALMOV CL,2SAR AL,CLADD AL,BL试问程序段执行后,以十六进制表示,(BL)=_____H,(AL)=_____H6.有下列程序段:ADD AL,BLJE L1RCL AL,1JE L2RCR AL,1INC ALJE L3上述程序运行后,试回答(以十进制表示):(1)当(AL)=__________时,程序转向L1(2)当(AL)=__________时,程序转向L2(3)当(AL)=__________时,程序转向L3 7.有下列程序段MOV BX,00FFHAND BX,0FFFHOR BX,0F0FHXOR BX,00FFH试问上述程序段运行后,以十六进制表示,(AL)=____________ H8. 执行下列指令后,AX寄存器中的内容是什么?START DW 10H,20H,30H,40H,50HEE1 DW 3┇MOV BX,OFFSET STARTADD BX,EE1MOV AX,[BX]执行后,以十六进制表示,(AX)=____________ H9.有下列程序段:MOV SI,10HMOV AX,1234HMOV [SI+12H],AXLEA BX,[SI]MOV [SI+14H],BXLES BX,DWORD PTR [SI+12H]MOV AX,ESDEC AX执行上述程序段后,AX和BX寄存器的内容, 以十六进制表示,(AX)= ____________ H(BX)= ____________ H10.有下列程序段MOV CX,1AHMOV DL,'z'LAB1: PUSH DXMOV AH,02HINT 21HPOP DXDEC DXLOOP LAB1执行后,屏幕输出结果为:____________________11. 设 ( SP )=80H , ( BX ) = 0FFH ; ( AX )=1PUSH BXADD BX , AXXOR BX , AXPUSH BXPOP CX上述程序段运行后,(SP )= ______H ( CX )=_______H12. 有如下程序段MOV AX , 0MOV BX , 1MOV CX , 5LOP:ADD AX,BXADD BX , 2LOOP LOP问题:(1) 程序的功能是什么(可用算式表示)?(2) 运行后, (AX)=__________13. 已知(DS)=5000H,(BX)=0100H,(DI)=0002H,(50100H)=45H,(50101H)=68H,(50102H)=0A1H,(50103H)=14H先执行MOV AX,[100H],(AX)= ;再执行ADD AX,[BX+DI],(AX)= ,CF= ,OF= 。

相关文档
最新文档