最新汇编语言复习资料
汇编语言复习资料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

《汇编语言》试卷一、单选题(每题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 字操作: (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与其他处理机协同工作时,该指令可避免破坏有用信息*。
汇编语言复习重点

Ch1 汇编语言基础知识1.什么是汇编语言?2.汇编语言与机器语言的区别3.学习汇编语言的意义4.码制:不同进制、原码、反码、补码、BCD码表示,压缩BCD码Ch2 微型计算机体系结构1.8086是16位微处理器,它有16根数据线和20根地址线,寻址空间1MB。
2.8086中设置了一个6字节的指令预取队列,它的意义如何?3.8086分为EU和BIU两个部分。
说明它们的功能、作用和相互关系。
4.8086中有4个寄存器可以拆分为两个8位寄存器独立使用。
是那些寄存器?5.说明8086堆栈的特点。
指令指针寄存器IP、堆栈指针SP………6.指令对标志寄存器FLAGS的影响。
7.在8086中,当一个字存入存储器时,占有连续的两个字节空间。
存放时,低位字节存入低地址,高位字节存入高地址。
8.8086是采用存储器分段管理方式来解决寻址问题的。
即将1MB地址空间分为若干个逻辑段,段的大小按实际需要确定,最大为64KB。
9.8086对于1MB的物理存储空间,每一个存储单元都有一个20位的物理地址10.8086是采用存储器分段管理方式来解决寻址问题,指令中采用逻辑地址形式,逻辑地址表示格式为:段地址:偏移地址11.逻辑地址“段地址:偏移地址”转换为对应的物理地址的方法。
Ch3 指令系统1.在一般情况下,机器指令应包含两个部分内容,其一般格式为:操作码操作数。
2.什么是寻址方式?8086有哪些寻址方式?3.重点指令。
Ch4 伪指令与汇编语言程序结构设计1.汇编语言源程序由若干条语句组成,其语句分为两类:指令性语句和指示性语句。
2.合法的名字。
3.数据定义伪指令开始。
DB、DW、DUP等。
4.段定义Ch7 输入输出程序设计1. 接口与外设之间的信息。
2. I/O接口的功能。
3. 接口的基本组成。
4. 输入输出的控制方式的概念:无条件传送、查询式传送、中断传送。
5. 中断的基本概念、优点。
6. 什么是中断向量表、特点。
Ch8 高级汇编技术1. 什么是宏。
汇编语言复习资料

汇编语言程序设计复习提纲一、单项选择题1.指令指针寄存器是()。
2. DAL DB 67HNUM EQU 80H则执行AND DAL,NUM语句后DAL中的内容是()。
A. E7HB. 80HC. 67HD. 03.与指令MOV AX,NOT 0F0H等效的汇编语言指令是()。
A. MOV AX,0FHB. MOV AX,0FF0FHC. MOV AX,000FHD. MOV AX,0F0H4.一个有16个字的数据区,它的起始地址是70A0H:DDF6H,则这个数据区最末一个字单元的物理地址是()。
B5.可用作基址变址寻址或寄存器间接寻址的寄存器是()。
,BX,CX,DX ,ES,CS,SS,BP,IP,BX ,DI,BP,BXD6.在串操作指令中,下列描述中不正确的是()。
MOVSB STOSBCMPSB LODSBD7. ORG 0030HDA1 DB 0 , ‘0’, 30H偏移地址为0030H字存储单元的内容是()。
A8.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令是()。
A. CMPD9.将汇编语言源程序翻译成机器码程序的程序是()。
A.编译程序B.汇编程序C.解释程序D.目标程序B10.设DS=1E4AH,偏移地址为0056H,该字节的物理地址为()。
A. 1E4A6HB. 1E456HC. 1E556HD. 1E4F6HD11.当程序顺序执行时,每取一条指令语句,IP指针增加的值是()A.由指令长度决定的字节数A12.若AX=349DH, CX=0FH。
则执行指令AND AX,CX后,AX的值是()。
B13. 设(AX)=0FC77H, (CX) =504H, CF=1,执行SAR AX, CL指令后,AX的值是()。
A. FFC8HB. FFC9HC. FFC7HC14.假设字节单元(02398H)=12H, (02399H) =34H, (0239AH) =56H,则(02399H)字单元的内容是()。
汇编语言复习资料

汇编语言复习资料一.名词解释(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的值。
汇编复习材料

汇编复习材料第一章总线从逻辑上分为3类,下列选项中不在其中的是:2____1、数据总线2、并行总线3、地址总线4、控制总线下列哪些可以由计算机直接执行___4__。
1、汇编指令2、伪指令3、 +、-、*4、机器码下列说法正确的是:_3___1、在计算机中,存储器分为指令存储器和数据存储器。
2、电子计算机的最小信息单位是Byte。
3、微型存储器的容量是以Byte为最小单位来计算的。
4、在“1KB=1024B”中,“B”代表的是Bit。
下列哪个计算机部件能确定一组二进制数是要执行的指令还是用于操作的数据___4__。
1、显示器2、硬盘3、内存4、中央处理器1个CPU访问的最大内存地址是1023,地址总线的宽度__2___。
1、 82、 103、 134、 14计算机中一个存储单元可以存储多少信息___2__。
1、 1bit2、 1Byte3、 1KB4、 512B1KB的存储器可以存储_2___个bit1、 10242、 81923、 10004、 81KB的存储器有_2___个存储单元?1、 10002、 10243、 5124、 256一个CPU的寻址能力为8KB,那么它的地址总线的宽度为___4_。
1、 82、 103、 124、 131个CPU的寻址能力为32KB,那么它的地址总线宽度为__2___。
1、 132、 153、 184、 32k在8086的内存空间中下面哪段内存是不可写的__4___。
1、 0~9FFFF2、 A0000~B7FFF3、 B8000~BFFFF4、 C0000~FFFFF1个CPU读取1024字节的数据至少读取了512次,数据总线的宽度__3___。
1、 82、 103、 164、 32下列说法中正确的是__3__。
1、不同的微处理器有相同的机器指令集。
2、机器语言和汇编语言都需要编译程序来编译成机器指令。
3、每一个汇编指令都对应唯一的一个机器指令。
4、没有存储器CPU也可以工作。
《汇编语言程序设计》复习资料

《汇编语言程序设计》复习资料一、基本概念1、8088/8086CPU内部寄存器有__14____个,其中的AX、BX、CX、DX是通用寄存器,SP、BP、DI、SI 是基址和变址寄存器,CS、DS、ES、SS、是段寄存器,此外还有指令指针寄存器 IP 和标志位寄存器 FLAGS 两个控制寄存器,所有寄存器都是 16 _位寄存器,每个寄存器可以存放 16 位二进制数。
2、8088/8086CPU的标志位寄存器中有9个标志位,其中的DF、IF、TF是控制标志,OF、SF、ZF、CF、AF、PF 是状态标志。
3、8088/8086CPU有三组总线,它们是数据总线、控制总线和地址总线;地址总线是 20 条,因此它可以寻址的范围是 1M 字节。
通常将 1024 字节称为1K,将 1024K 字节称为1M。
4、8088/8086CPU的存储器采用分段方式管理,每个段最多可以有 64K 字节,全部存储空间可以分成 16 个大小为64K且互相不重叠的段。
5、采用分段方式管理的存储单元的地址分成物理地址和逻辑地址两种,逻辑地址由段地址和偏移地址两部分构成,段地址是每个存储器段的起始地址;偏移地址则是相对于每个段第一个存储单元的偏移值。
段地址存放在段寄存器中,由于8088/8086CPU的段寄存器是16位寄存器,因此在段寄存器中存放的是段地址的 16 位;而CPU对数据的存取是按物理地址进行的,物理地址和逻辑地址间的关系是__ 物理地址=段地址 16D(或10H)+ 偏移地址___。
6、存储器中,数据是以字节为单位存放的,它是一个 8位二进制数,16位二进制数是 2个字节,又称为字;每个存储单元可以存放一个字节;一个字则占用两个存储单元,存放时要将低字节放在地址较小的存储单元中。
7、计算机的指令由操作码字段和操作数字段构成,它们分别给出计算机所要执行的操作和执行操作所要的操作数。
8、指令操作数通常可以存放在指令中,也可以存放在CPU的寄存器中,大多数存放在存储器中,它们分别称为立即数、寄存器操作数和存储器操作数。
汇编语言考试复习资料

第一章【课后习题】1 用降幂法或除法将下列十进制数转换为二进制数和十六进制数:(1)369(2)10000(3)4096(4)327672 将下列二进制数转换为十六进制数和十进制数:(1)101101(2)10000000(3)1111111111111111(4)111111113 将下列十六进制数转换为二进制数和十进制数:(1)FA(2)5B(3)FFFE(4)12344 完成下列十六进制数的运算:(1)3A+B7(2)1234+AF(3)ABCD-FE(4)7AB×6F5 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用是十六进制数表示其运算结果。
(1)(―85)+76(2)85+(―76)(3)85―76(4)85―(―76)(5)(―85)―76(6)―85―(―76)6 下列各数为十六进制表示的8位二进制数,请说明当它们被看作是用补码表示的带符号数时,它们所表示的十进制数是什么?(1)D8(2)FF7 当1. 6题的两数被看作是用补码表示的无符号数时,它们所表示的十进制数是什么?(1)D8(2)FF8 下列各数为十六进制表示的8位二进制数,请说明当它们被看作是用补码表示的数时,它们所表示的十进制数是什么?(1)4F(2)2B(3)73(4)599 当1. 8题的4个数被看作是字符的ASCII码时,它们所表示的字符是什么?(1)4F(2)2B(3)73(4)5910 请写出下列字符串的ASCII码。
For example,This is a number 3692.答案第1个空101110001B;171H第2个空0011100010000B;710H第3个空111111111111B;0FFFH第4个空0111111111111111B;7FFFH 第5个空2DH;45第6个空80H;128第7个空0FFFFH;65535第8个空0FFH;255第9个空11111010B;25D第10个空01011011B;91D第11个空1111111111111110B;65534D 第12个空1001000110100B;4660D第13个空F1H第14个空12E3H第15个空0AACFH第16个空35325H第17个空0F7H第18个空9H第19个空9H第20个空0A1H第21个空5FH第22个空0F7H第23个空-40第24个空-1第25个空216第26个空255第27个空8、79第28个空43第29个空115第30个空89第31个空O第32个空+第33个空s第34个空Y第10题46 6F 72 20 65 78 61 6D 70 6C 65 2C 0A 0DF o r e x a m p l e ,54 68 69 73 20 69 73 20 61 20 6E 75 6D 62 65 72 20 3336 39 32 2ET h i s i s a n u m b e r 3 6 9 2第二章【课后习题】1 在8086微机的输入/输出指令中,I/O端口号通常是由DX寄存器提供的,但有时也可以在指令中直接指定00~FFH的端口号。
汇编语言复习资料

汇编语言复习资料【引言】汇编语言作为计算机科学中的重要一环,是掌握计算机底层工作原理的基础。
本文将为读者提供一份汇编语言的复习资料,以帮助读者巩固对汇编语言的理解,并加深对底层计算机工作过程的认识。
【一、汇编语言基础知识】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等。
汇编语言复习提纲

汇编语言复习提纲一、题型1.选择题60%,50小题2.简答10%,2小题3.程序功能、结果20% ,4小题4.程序设计10%二、基础知识1.基本数据表示,数制间的转换(2,10,16,补码)2.计算机系统主要的主要功能部件,它们各自的主要功能,寄存器的分组及各自的作用(通用寄存器、地址寄存器、段寄存器、控制寄存器(IP\FLAGS)主要标志位的含义(ZF,CF,SF)3.寻址方式(典型的几种)、主存储器的组织寻址方式的概念、物理地址、逻辑地址操作数可能存放的地方:指令中(立即数)寄存器、存储器。
4.基本指令的含义(指令系统,六类指令、功能)5.MOV(什么不能传、传送图)●PUSH,POP●XCHG●LEA●SHL,RoL●条件转移指令●ADD、SUB、ADC、SBB、INC、DEC、NEG、CMP等指令分别影响哪些标志位,各标志位的含义是什么?注意ADD、ADC,SUB、SBB 的区别。
●逻辑运算(NOT,NEG,AND,OR,XOR,TSET)指令,移位指令(shl,sal,rol,rcl)CMP指令与TEST指令的运用两种指令都不保存运算结果,但是要影响标志位。
比较两个带符号数大小CMP AL,AHJL L1JMP L2测试AL第0位是否为1TEST AL,1JZ L1JMP L2●CBW含义●循环指令(LOOP,LOOPZ)●串操作与前缀(REP),MOVS,STOS,LODS,CMPS。
6.基本伪指令的含义●DB、DW这些空间分配伪指令分别分配多大的空间,计算数据定义的字节数。
●DUP关键字,计算使用DUP关键字定义的数组长度、类型等。
●EQU关键字与=关键字的区别。
●ASSUME语句的概念,对指令汇编的影响。
●ORG伪指令与$符号的使用方法及含义。
●BYTE PTR ,WORD PTR,OFFSET7.上机主要步骤8.Debug的功能、命令(D、U、G、R、A、T)9.DOS调用。
1号,2号,9号,10号功能10.顺序结构:完整程序结构,P53例,简化程序结构P88例4-9)11.条件转移(符号函数,大小写转换)12.循环程序:P129例,P146例,(注意:如何用Debug查看结果),发声程序(多重循环)13.串处理(四个准备工作),REP MOVSB,REP STOSB,P133例,14.子程序(又叫过程,子程序定义,属性),P151例,回车换行程序15.宏结构子程序和宏结构的优缺点,自的应用场合宏结构仅是源程序级的简化:宏调用在汇编时进行程序语句的展开,不需要返回;不减小目标程序,执行速度没有改变。
汇编语言程序设计复习

知识点第一章基础知识(1)正负数的补码表示, 掌握计算机中数和字符的表示;eg.假设机器字长为8位,[+3]补=00000011B,[-3]补= 11111101 H 。
十六进制数0FFF8H表示的十进制正数为65528D,表示的十进制负数为-8D。
8位二进制数被看成是带符号补码整数时,其最小值是-128,最大值是 127 。
第二章80x86计算机组织(1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器eg: IP寄存器中保存的是?代码段中的偏移地址FLAGS标志寄存器中共有几位条件状态位6位,有几位控制状态位2位,标志寄存器分为哪2类?陷阱标志,中断标志。
(2)存储单元的地址和内容每一个字节单元给以一个唯一的存储器地址,称为物理地址;一个存储单元中存放的信息称为该存储单元的内容。
存储器地址的分段,(低位字节存放)低地址,(高位字节存放)高地址;实模式下逻辑地址、选择器和偏移地址;物理地址的表示段基地址加上偏移地址。
eg.如果SS=6000H,说明堆栈段起始物理地址是_____60000H___。
已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为__1420H______。
如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,(SI)= 0235H ,(DS)= 0E60H .第三章80x86的指令系统和寻址方式与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址)。
数据传送指令(通用数据传送指令、累加器专用传送指令、输入输出指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响[of,cf,sf,zf])、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以后,商和余数在?))、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS 指令,与REPE/REPZ和REPNE/REPNZ联合工作的CMPS、SCAS指令)、控制转移指令(无条件转移指令、条件转移指令、循环指令、子程序调用指令、中断)。
汇编语言复习资料1

一、单选题(每题1分,共20分)1.PC机的最小信息单位是()。
A : bitB : 字节C : 字长D : 字2.一个CPU的寻址能力是8KB,那么它的地址总线的宽度为()位。
A : 8B : 3C : 12D : 133.在Debug中,用“d 075A:110 11F”查看内存,结果如下:075A:0110 B8 00 00 FF 07 00 B8 4C —CD 21 F3 69 20 8A 03 A1那么,字型数据00B8H对应的地址为()。
A : 076A:11B : 076A:16C : 076B:0D : 无法确定4.Debug加载程序后,假设PSP的段地址为SA,偏移地址为0,则程序的起始地址是()。
A : SA×16HB : SA×16C : (SA+16H)×16HD : (SA+16)×165.8086CPU中,任意时刻,CPU将()指向的内容当作指令来执行。
A : DS:SIB : CS:IPC : SS:SPD : ES:DI6.下列关于Debug的说法,错误的是()。
A : R命令可以修改寄存器的内容。
B : E命令可以修改内存单元的内容。
C : T命令每次只执行一条指令。
D : D命令可以查看内存单元的内容。
7.源程序中有如下两个按先后顺序定义的段:a segmentdb 1,2,3,4,5,6,7,8a endsb segmentdb 1,2,3,4,5,6,7,8b ends如果a段中“1”这个数据的物理地址是X,则b段中“1”这个数据的物理地址是()。
A : XB : X+1C : X+16D : X+648.对于8086CPU,错误的指令是()。
A : mov ax,bxB : mov ax,[bx]C : mov ds,0D : mov ax,09.对于8086CPU,正确的指令是()。
A : inc cx,1B : shl ax,2C : and [bp],alD : mov [bx][bp],ax10.以下指令执行后,寄存器ax的值为()。
汇编语言复习提纲资料

汇编复习提纲第一章数制转换,数的编码,补码的表示数范围,字符的编码,求补运算。
第二章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. 已知[X]补=98H, 则[X]补/2=()(A) 0CCH (B) 4CH (C) 49H (D) 31H2. 已知X=78,Y=-83则[X+Y]补=()(A)0F5H (B) 0A1H (C) 0FBH (D) 65H3. 在计算机的CPU中执行算术逻辑运算的部件是()(A)ALU (B) PC (C) AL (D) AR4. 将125转换成二进制数的结果()(A)7DH (B) 7CH (C) 7EH (D) 7BH5. 将93H看成一个组合BCD码,其结果是()(A)10010101 (B)10010011 (C) 10000011 (D)100000016.MOV AX,ES:[1000H] 源操作数的寻址方式是()(A) 立即寻址(B) 直接寻址(C) 变址寻址(D) 基址寻址7.MOV AX,ES:COUNT[DI] 源操作数的寻址方式是()(A) 基址寻址(B) 立即寻址(C) 变址寻址(D) 基址变址寻址8.MOV DX,COUNT[BP][DI]的源操作数的寻址方式是()(A) 变址寻址(B) 基址寻址(C) 直接寻址(D) 基址变址寻址9.指令MOV BX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为()(A) 17500H (B) 16500H(C) 14500H (D) 13500H10.指令MOV AX,COUNT[BX],若COUNT=0400H,SS=1200H,DS=1000H,BX=5000H,那么物理地址为()(A) 17400H (B) 17000H(C) 15400H (D) 14500H11.指令MOV DX,DELTA[BX][SI],若DELTA=1300H,SS=7200H,DS=5400H,BX=0500H,SI=4000H,那么物理地址为()(A) 6F300H (B) 77800H(C) 59800H (D) 78700H12. 汇编语言指令中唯一不可缺少的域是( )(A) 标号名字域(B) 助记符域(C) 操作数域(D) 注释域13. 下面哪一个命令是显示内存单元的内容()(A)D命令(B)E命令(C)F命令(D)R命令14. 下列为不合法的标志符的是()(A)AXYZ(B)5SKY (C)@A TT(D)?ABC15. 组合类型中本段与其它段无逻辑关系,每段均有自己的基址的组合类型是()(A)NONE (B)PUBLIC(C)COMMON (D)STACK16. 在段定义中,()是默认的定位类型。
最新汇编语言复习资料

最新汇编语言复习资料1汇编语言程序设计2DX:单项选择题 DU:多项选择题 TK:填空题 MC:名词解释3v JD:简答题CXFX:程序分析题CXTK:程序填空题BC:编程题4第1章:基础知识51、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。
DX 6A、宏定义,宏调用B、宏定义,宏展开7C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用82、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中9不可省略的项是( B )。
DX10A、名字项B、操作项C、操作数项D、注释项113、可屏蔽中断就是它的请求是否被CPU响应要受( IF )的控制。
DX124、使用LINK连接命令,执行后可生成文件的扩展名为( EXE )。
DX135、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在堆栈段中,段14地址在SS寄存器中。
TK156、注释项用于说明程序段或是一条和几条指令的功能,一般用;(或分号) 表16示注释的开始。
TK177、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送AH寄存器后执18行INT 21H。
TK198、通常主程序和子程序间参数传送的方法有三种:用寄存器传递、用存储单元传递、20用堆栈传递(顺序可调换)。
TK219、中断是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该22事务处理完后能自动恢复执行原先程序的过程。
在此,称引起紧急事务的事件为中23断源。
TK2410、在字符串操作指令中,DS∶SI指向源串,ES∶DI指向目的25串。
TK2611、计算机系统通过接口与外围设备通信。
TK2712、键盘I/O、显示I/O和打印I/O分别对应16H、10H和 17H 28号中断。
TK2913、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。
每个字的第一个字节为30显示字符的ASCII码,第二个字节为显示字符的属性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1汇编语言程序设计2DX:单项选择题 DU:多项选择题 TK:填空题 MC:名词解释3v JD:简答题 CXFX:程序分析题 CXTK:程序填空题 BC:编程题4第1章:基础知识51、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。
DX 6A、宏定义,宏调用B、宏定义,宏展开7C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用82、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中9不可省略的项是( B )。
DX10A、名字项B、操作项C、操作数项D、注释项113、可屏蔽中断就是它的请求是否被CPU响应要受( IF )的控制。
DX124、使用LINK连接命令,执行后可生成文件的扩展名为( EXE )。
DX135、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在堆栈段中,段14地址在SS寄存器中。
TK156、注释项用于说明程序段或是一条和几条指令的功能,一般用;(或分号) 表16示注释的开始。
TK177、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送AH寄存器后执18行INT 21H。
TK198、通常主程序和子程序间参数传送的方法有三种:用寄存器传递、用存储单元传递、20用堆栈传递(顺序可调换)。
TK219、中断是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该22事务处理完后能自动恢复执行原先程序的过程。
在此,称引起紧急事务的事件为中23断源。
TK2410、在字符串操作指令中,DS∶SI指向源串,ES∶DI指向目的25串。
TK2611、计算机系统通过接口与外围设备通信。
TK2712、键盘I/O、显示I/O和打印I/O分别对应16H、10H和 17H 28号中断。
TK2913、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。
每个字的第一个字节为30显示字符的ASCII码,第二个字节为显示字符的属性。
TK3114、简述上机运行汇编语言程序的过程。
JD32答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序33代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。
3415、简述程序中指令和伪指令的区别。
JD35答:能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。
36伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可37加在汇编程序的任何地方,但它们并不产生机器指令。
3816、十六进制数88H,可表示成下面几种形式,请找出错误的表示(④)。
DX39①无符号十进制数13640②带符号十进制数-12041③压缩型BCD码十进制数8842④ 8位二进制数-8的补码表示4317、指令指针寄存器是(IP )。
DX4418、汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法(B) DX45A.名字的第一个字符可以是大写英文字母及小写英文字母46B.名字的第一个字符可以是字母、数字及、@、_47C.名字的有效长度≤31个字符48D.在名字中不允许出现$4919、CS寄存器属于(段寄存器)。
DX5020、已知物理地址(371F0H)=12H,(371F1H)=34H,(371F2H)=56H,如从地址371F0H 51中取出一个字的内容是( 3412H )。
DX5221、一个有16个字的数据区,它的起始地址是70A0H∶DDF6H,则这个数据区最末一个53字单元的物理地址是( 7E814H )。
DX5422、简述上机运行汇编语言程序的过程。
JD 答:首先打开未来汇编,新建一个55空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连56接成可执行文件,即exe文件,最后再运行。
57第2章:8086/8088的寻址方式和指令系统581、下列指令属于基址加变址寻址方式的是( MOV DX,DS:[BP][SI] )。
DX592、当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。
DX60A.1 B.2 C.3 D.由指令长度决定的613、下列属于合法的指令是( D ) DX62A.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI],63BL644、若AX=349DH,CX=000FH。
则执行指令AND AX,CX后,AX的值是( 000DH )。
DX 655、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是66( 85B92H ) DX676、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B ) 68DX69A、AX,BX,CX,DXB、BX,BP,SI,DIC、SP,IP,BP,DXD、CS,DS,70ES,SS717、对寄存器AX的内容乘以4的正确指令序列是( SHL AX,1 SHL,AX,721 )。
DX738、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( OF,AF,74PF )。
DX759、设DH=10H,执行NEG DH指令后,正确的结果是76( DH=0F0H CF=1 )。
DX7710、下列传送指令中有语法错误的是( A )。
DX78A、MOV CS,AXB、MOV DS,AXC、MOV SS,AXD、MOV ES,AX7911、下面指令执行后,改变AL寄存器内容的指令是( D )。
DX80A、TEST AL,02HB、OR AL,ALC、CMP AL,BLD、AND AL,BL8112、执行除法指令后,影响的标志位是( AF,CF,OF,PF,SF,ZF都不确82定 )。
DX8313、执行下面指令序列后,结果是( AX=0FF82H )。
DX84MOV AL,82H85CBW8614、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。
DX87A、MOV BX,VARB、LDS BX,VARC、LES BX,VARD、LEA BX,VAR8815、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是89( PARA )。
DX9016、MOV SP,3210H91PUSH AX 执行上述指令序列后,SP寄存器的值是( 320EH )。
92DX9317、BUF DW 10H DUP(3 DUP(2,10H),3,5)94上述语句汇编后,为变量BUF分配的存储单元字节数是( 100H )。
95DX9618、MOV AH,7896H97ADD AL,AH98上述指令执行后,标志位CF和OF的值是( CF=1,OF=0 )。
DX9919、完成将带符号数AX的内容除以2的正确指令是( SHR AX,1 )。
DX10020、在汇编语言程序中,对END语句的叙述正确的是( C )。
DX101A.END语句是一可执行语句 B.END语句表示程序执行到此结束102C.END语句表示源程序到此结束 D.END语句在汇编后要产生机器码10321、已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在(数据段中偏移104量为3236H的字节)中。
DX10522、下面指令序列执行后完成的运算,正确的算术表达式应是(y=x2-1)。
DX 106MOV AL,BYTE PTR X107SHL AL,1108DEC AL109MOV BYTE PTR Y,AL11023、已知(AX)=1234H,执行下述三条指令后,(AX)= (0000H)。
DX 111MOV BX,AX112NEG BX113ADD AX,BX114A.1234H B.0EDCCH C.6DCCH D.11524、将DX的内容除以2,正确的指令是(C)。
DX116A.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,111725、有如下指令序列: DX118ORG 40H119DA1 DW 0AB12H,8574H120……121MOV AX,DA1122MOV BX,OFFSET DA1123上述指令执行后,寄存器AX和BX的值分别为( AB12H,40H )。
12426、下列数值表达式和地址表达式中,错误的是( D )。
DX125A.MOV AL,8*14+4 B.MOV SI,OFFSET BUF+13126C.MOV CX,NUM2-NUM1 D.MOV CX,NUM2+NUM112727、数据段定义如下: DX128X1 DB 10H,50,1129X2 DW 10H,20,3130X3 DD ?131COUNT EQU X3-X1132变量COUNT的值是( 9 )。
13328、为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是134( C )。
DX135A、INC CX JZ MINUSB、SUB CX,OFFFFH JZ MINUS136C、AND CX,OFFFFH JZ MINUSD、XOR CX,OFFFFH JZ MINUS13729、AL和VAR字节单元中分别存放一个带符号数,执行CMP AL,VAR时,如AL>VAR,138那么溢出位和符号位的关系是( OF=SF )。
DX13930、下面是关于汇编语言程序中使用RET的描述,不正确的是( C )。
DX140A.每一个子程序中允许有多条RET指令。
B.每一个子程序结束之前一定要有一141条RET指令。
142C.每一个子程序中只允许有一条RET指令。
D.以过程形式表示的代码段,一定有143RET指令存在。
14431、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是( CX=0或145ZF=0 )。
DX14632、用MOV指令将十进制64以组合型BCD码格式送入AX,正确使用的指令是( MOV 147AX,0604H )。
DX14833、重复前缀指令REP的重复次数由CX决定。
TK14915034、DR1 DB 10H,30H151DR2 DW 10H DUP(0,2 DUP(2))152……153MOV BL,LENGTH DR1154MOV CL,LENGTH DR2 请问指令执行后,BL和CL的值分别为1和15510H。
TK15635、设(SP)=100H,(AX)=0FFFFH157STC158PUSH AX159ADC AX,0160PUSH AX161POP BX 上述程序段运行后,(BX)= 0,(SP)= 0FEH。
162CXFX16336、假设数据段定义如下:164DA1 DW ’C’,’D’165DA2 DB 18 DUP(?)166DA3 DW $-DA2167……168MOV BX,DA3169MOV AX,DA1170上述指令执行后,BX寄存器中的内容是12H(或18),AH寄存器中的内容是00H,AL寄171存器中的内容是43H。