汇编语言复习题
汇编语言考试复习题及参考答案

汇编语言考试复习题及参考答案中南大学现代远程教育课程考试复习题及参考答案《汇编语言》一、填空题:把答案填在题中横线上。
1. 8位无符号整数的表示范围为0~255,写成16进制形式为00H~__________;8位有符号整数的表示范围为-128~+127,写成16进制形式为__________~__________。
2. CPU发出的访问存储器的地址是__________。
3. 逻辑地址为F000:100的存储单元,其物理地址是__________。
4. 用来指示堆栈栈顶的偏移地址的是__________寄存器。
5. 若要测试AL寄存器D4、D2、D0位是否都为0,则可使用__________指令语句(含操作数),以产生转移条件。
这条指令执行后将利用标志位__________实现转移。
6. 若定义:bdata db 2 dup(1,2,2dup(3),4),则dbata变量前5个单元从低地址到高地址的数据依次是__________。
7. 假设varw是一个16位变量,则指令“mov varw,ax”的目的操作数的寻址方式是__________。
二、选择题:在每小题给出的四个选项中,只有一项是符合题目要求的,请把所选项前的字母填在题后的括号内。
1.对汇编语言源程序进行翻译,形成OBJ文件的是A.汇编程序B.连接程序C.编辑程序D.调试程序[]2.下列各个8位二进制数的补码中,真值最大的是A.10001000B.11111111C.00000000D.00000001 []3.MASM语句中,表达常数不正确的形式是A.01101001BB. A346HC.’A’D. 5600 []4.如果SS=600H,则说明堆栈段物理地址起始于A.60HB.600HC.6000HD.60000H []5.dw 50 dup(?)预留了存储空间的字节数是A.25B.50C.100D.200 []6.下列指令中有操作数在代码段中的是A.mov ax,34hB.add ax,bxC.inc word ptr [34h]D.cmp ax,[34h] []7.假设AL=5,要使得AL=0FAH,应执行的指令是A. not alB.and al,0fhC.xor al,0f0hD.or al,0fh []8.设置逻辑段应该采用的一对伪指令是A.segment/endsB.start/end startC.proc/endpD.macro/endm []9.条件转移指令JNE条件是A.CF=0B.CF=1C.ZF=0D.ZF=1 []10.逻辑移位指令SHL可用于A.有符号数乘以2B.有符号数除以2C.无符号数乘以2D.无符号数除以2 []11.执行“in al, dx”指令后,进入AL寄存器的数据来自A.寄存器B.存储器C.立即数D.外设端口[]12.将十进制数75以压缩BCD码送入AX,正确的指令是A.mov ax,0075B. mov ax,0705C.mov ax,0075hD. mov ax,0705h []13.如下指令可将AX寄存器内容改变的是A. cmp ax,bxB. test ax,bxC. and ax,bxD. xchg ax,bx []14.设AH=10H,执行“neg ah”指令后,正确的结果是A. AH=10H、CF=1B. AH=F0H、CF=0C. AH=10H、CF=0D. AH=F0H、CF=1 []15.如下程序段:again: mov es:[di],alinc diloop again可用指令__________完成相同的功能。
汇编语言考试复习题及答案

汇编语⾔考试复习题及答案⼀、单项选择题(从下列每题的四个选择中选择⼀个正确的,填⼊答题纸的相应位置。
每⼩题2分,共30分)1.下列指令有语法错误的是__________。
A) PUSH AL B) ADDC AX,50HC) MOV [SI],[DI] D) JMP WORD PTR[BX+5]见书:35页,PUSH2.执⾏下列程序段后,(AX)= ________。
TAB DW 1,2,3,4,5,6ENTRY EQU 3MOV BX, OFFSET TABADD BX,ENTRYMOV AX,[BX]A) 0003H B) 0300H C) 0400H D) 0004H3.NC 指令不影响 _________标志。
A) OF B) CF C) ZF D) SF4.执⾏下列指令后:STR1 DW ‘AB’STR2 DB 16 DUP(?)CNT EQU $ -STR1MOV CX,CNTMOV AX,STR1HLT寄存器CL的值是________,寄存器AX的值是________。
① A) 10H B) 12H C) 0EH D) 0FH② A) 00ABH B) 00BAH C) 4142H D) 4241H5.汇编语⾔源程序经汇编后不能直接⽣成⽂件。
A).OBJ B).LST C).EXE D).CRF6.8086 CPU在基址加变址的寻址⽅式中,已知BX=2000H,SI=1234H,则指令“MOV AX,[BX+SI+2]”的源操作在中。
(A)数据段中偏移量为3236H的字节(B)数据段中偏移量为3234H的字节(C)附加段中偏移量为3236H的字节(D)附加段中偏移量为3234H的字节(A)19,20 (B)20,⽆右孩⼦(C)⽆左孩⼦,20 (D)⽆左孩⼦,⽆右孩⼦7.执⾏下⾯的程序段后,DAT1单元的值是。
DAT1 DB 12H,34HDAT2 DB 56H,78HMOV AX,WORD PTR DAT1CMP AX,WORD PTR DAT2JA DONEMOV BX,WORD PTR DAT2MOV WORD PTR DAT2,AXMOV WORD PTR DAT1,BXDONE:HLTA)12H B)34H C)56H D)78H8.下列指令中,正确的⼀条是。
(完整版)汇编语言复习题

汇编语言程序设计复习题一、单项选择题1.假设(AL)=0FFH依次执行ADD AL,0FH指令后,标志位ZF和SF的状态分别为(A )A. 0和0B. 0和1C. 1和0D. 1和12.假设V AR为变量,指令MOV BX,V AR 的寻址方式是( A )A.直接寻址B.间接寻址C.立即寻址D.存储器寻址3.下列指令中,不影响标志位的是( C )A.SUB BX,BX B.ROR AL,1 C.JNC Lable D.AND AL,CL4.假定(DS)=4000H,(DI)=0100H,(40100H)=55H,(40101H)=0AAH,试问执行指令MOV BX,[DI]后,(BX)= ( C )A.0100H B.55AAHC.AA55H D.4100H5.执行下列哪一条指令后,就能用条件转移指令判断AL和BL寄存器中的最高位是否相同?(D )A. TEST AL BLB. CMP AL BLC. AND AL BLD. XOR AL BL 6.堆栈中当前出栈的存储单元地址是(A )A. SS*10H+SPB. SS*10H+BPC. SS*10+SPD. SS*10+BP7.已知V AR DW l,2,$+2,5,6 若汇编时V AR分配的偏移地址是0010H,则汇编后0014H单元的内容是( D )A.6H B.14H C.5H D.16H8.循环控制指令REPNZ继续执行循环的条件是(B )A. CX≠0且ZF=1B. CX≠0且ZF=0C. CX≠0或ZF=1D. CX≠0或ZF=09.设NUM=11011011B,指令“MOV AL,NUM SHL 3”执行后AL中的值是(B )A.11011011000BB.11011000BC.00011011BD.00011011011B10.下面XCHG指令语句中,语法正确的是(B)A. XCHG AX,DSB. XCHG BL,[BX]C. XCHG AL,OFHD. XCHG [SI],[DI]11.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是( A )A。
汇编语言复习资料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,错误的指令是()。
汇编语言参考复习题

A) BX B) DI C) SI D) DX
3.在指令MOV ES:[SI],AX 中,目的操作数为_______寻址方式。
A) 寄存器 B) 直接 C) 基址变址 D) 寄存器间接
简答题
1.写出6种常用的寻址方式。
伪指令VR1 DB 2 DUP(?,3 DUP(1,2),5)在存贮器中被分配了_________字节。答案: 16个
若当前(SP)=6000H,CPU执行一条IRET指令后,(SP)=___ _____H;而当CPU执行一条段内返回指令RET 6后,(SP)=____ ______H。 6006H,6008H
A)0FH,04H B)0BH,04H C)0FH,0BH D)04H,0FH
6.若已知(SP)=2000H,(AX)=0020H,则执行指令,PUSH AX 后,(SP)和((SS):(SP))的值分别为_________。
A)2002H,00H B)2000H,20H C)1FFFH,00H D)1FFEH,20H
A) 0—255 B) 0—65535 C) 0—1023 D) 0—32767
14.下列四条指令中,有几条指令需要使用DX寄存器_________?
MUL BX DIV BL IN AX,20H OUT 20H,AL
执行指令段: AGAIN:MOV ES:(DI), AL
INC DI
LOOP AGAIN
完成的操作,与其等效的指令组:_______________、_______________。
CLD,REP STOSB
汇编语言选择题及填空题复习部分已填写答案的

汇编语言选择题及填空题复习部分已填写答案的汇编语言复习题一、选择题1.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是( C)A. C+D=BB. A+D=BC. B=DD. A>C>D2.标志寄存器中属于控制标志位的是(B )A.DF,OF,SFB.DF,IF,TFC.OF,CF,PFD.AF,OF,SF3.8088/8086存储器分段,每个段不超过()A.64K个字B.32K个字节C.1兆个字节D.64K个字节4.设AL中已有压缩型BCD码,为实现对AL的减1操作,可选用的指令序列是()A.DEC ALB.SBB AL,0C.SUB AL,1D.SUB AL,1AAS DAS AAS DAS5.若AX= - 15要得到AX=15应执行的指令是()A.NEG AXB.NOT AXC.INC AXD.DEC AX 6.8086/8088系统执行传送指令MOV时()A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志7. MOV AL,79ADD AL,0B1H上面指令执行后,设置的标志位 CF和OF的值是()A.CF=0,OF=1B.CF=1,OF=1C.CF=0,OF=1D.CF=1,OF=08.已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正确的是()A.DIV BXB.CWDC.XOR DX,DXD.CBWIDIV BX DIV BX IDIV BX 9.下列指令中操作数在代码段中的是()A.MOV AL,42HB.ADD AL,BLC.SUB [BX],DID.INC [DI]10.用REPE SCASB指令对字符串进行扫描,如CX>0时,扫描结束,那么表示()A.在字符串中遇上第一个AL中指定的字符B.在字符串中有一个AL中指定的字符C.在字符串中有一个不是AL中指定的字符D.在字符串中遇上第一个不是AL中指令的字符11.下列指令执行后对源和目的操作数均无影响的是()A.MOV [BX+2],AXB.SUB AX,2467HC.SBB [SI],BXD.CMP AX,BX12.表示过程定义结束的伪指令是()A.ENDPB.ENDSC.ENDD.ENDM13.下列有语法错误的语句是()A.DB 12HB.DW 4567HC.DD ˋBCDˊD.DB ˋCDˊ14.DB1 DB 8 DUP(2 DUP(3),3 DUP(2))┇MOV AX,WORD PTR DB1 [04H]上面指令执行后,AX的内容是()A.0302HB.0203HC.0202HD.0303H15.BUF1 DB 3 DUP(0,2 DUP (1,2),3)COUNT EQU $ - BUF1符号COUNT等价的值是()A.6B.18C.16D.816.DA1 DW 2A05HDA2 DB 0FAH┇MOV AL,BYTE PTR DA1SUB DA2,AL上述指令执行后,DA2中的内容是()A.0DAHB.0FAHC.0F5HD.0D0H17.设(SS)=338AH,(SP)=450H,执行PUSH BX,和PUSHF两条指令后,堆栈顶部的物理地址是()A.33CECHB.33CF2HC.33CF4HD.33CE8H18.设(SP)=0028H,执行段内返回指令RET 6后,SP的内容是()A.0036HB.0022HC.0030HD.0020H19.条件转移指令JNBE产生转移的条件是()A. CF=0 AND ZF=0B. CF=0 AND ZF=1C. CF=1 AND ZF=0D. CF=1 AND ZF=120.已知某操作数的物理地址是2117AH,则它的段地址和偏移地址可能是( )。
汇编复习题

1.CPU要访问的某一存储单元的实际地址称()。
A.段地址B.偏移地址C.物理地址D.逻辑地址2.某存储单元的物理地址是12345H,可以作为它的段地址有()。
A.2345H B.12345HC.12340H D.1234H3.执行后使BX=0的同时也使CF=0,OF=0的指令是()。
A.XOR BX,BX B.OR BX,BXC.AND BX,BX D.CMP BX,BX4.循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是()。
A.CX≠0且ZF=1 B.CX≠0且ZF=0C.CX≠0或ZF=1 D.CX≠0或ZF=05.AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是()。
A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位B.指令OR DX,1000H执行后,将DX最高位置1,其余各位置0C.指令AND AX,OFH执行后,分离出AL低四位D.NOT AX,执行后,将AX清06.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是()。
A.ADD BH,01H B.OR BH,01HC.XOR BH,01H D.TEST BH,01H7.完成对CL寄存器的内容乘以4的正确操作是()。
A.ROL CL,1 B.MUL 4ROL CL,1C.SHL CL,1 D.MOV CL,2SHL CL,1 SHL CL,CL8.下面各传送指令中,正确的是()。
A.MOV [DI],[SI] B.MOV[DX+DI],ALC.MOV WORD PTR [BX],0100H D.MOV AL,BX9.要实现使BETA的值为56,应采用语句为()。
A.BETA DB 56 B.BETA DB 56HC.BETA EQU 56 D.BETA EQU 56H10.比较两个带符号的数A、B,当A=B时程序转移,测试的条件为()。
A.ZF=1 B.ZF=0C.SF=1 D.SF=011.检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是()。
汇编语言复习题

汇编语言复习题一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。
每小题1分,共20分)1、设DS=8225H,DI=3942H,指令NEG BYTE PTR [DI]操作数的物理地址是()。
A、85B92HB、86192HC、BB690HD、12169H2、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是()。
A、AX,BX,CX,DXB、BX,BP,SI,DIC、SP,IP,BP,DXD、CS,DS,ES,SS3、循环指令LOOPNZ终止循环的条件是()。
A、CX=0,且ZF=0B、CX=0,或ZF=1C、CX≠0,且ZF=0D、CX≠0,或ZF=14、对寄存器AX的内容乘以4的正确指令序列是()。
A、SHR AX,1SHR AX,1B、SHL AX,1SHL,AX,1C、ROL AX,1ROL AX,1D、RCR AX,1RCR AX,15、执行INC指令除对于SF、ZF有影响外,还要影响的标志位是()。
A、OF,AF,PFB、OF,AF,CFC、OF,PF,CFD、AF,PF,CF6、设DH=10H,执行NEG DH指令后,正确的结果是()。
A、DH=10HCF=1B、DH=10HCF=0C、DH=10HCF=0D、DH=0F0H7、下列传送指令中有语法错误的是()。
A、MOV CS,AXB、MOV DS,AXC、MOV SS,AXD、MOV ES,AX8、下面指令执行后,改变AL寄存器内容的指令是()。
A、TEST AL,02HB、OR AL,ALC、CMP AL,BLD、AND AL,BL9、执行除法指令后,影响的标志位是()A、CF,OFB、SF,ZFC、CF,OF,SFD、AF,CF,OF,PF,SF,ZF都不确定10、执行下面指令序列后,结果是()。
MOV AL,82HCBWA、AX=0FF82HB、AX=8082HC、AX=0082HD、AX=0F82H11、与MOV BX,OFFSET V AR指令完全等效的指令是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言复习题第2章8086CPU寄存器的结构及使用1.8086CPU由指令执行部件EU和总线接口部件BIU两部分组成。
其中EU的功能是控制和执行指令,主要由算术逻辑部件ALU、EU控制部件、8个16位寄存器和一个标志寄存器FLAGS组成。
BIU的功能是从存储器预取指令和数据,以及所有EU需要的总线操作,实现CPU与存储器和外设间信息传递。
BIU由指令队列、指令指针寄存器、段寄存器、地址加器组成。
2.Intel 8086CPU共有14个16位寄存器,它们分别是通用寄存器8个即AX、BX、CX、DX、SP、BP、SI、DI,其中能用作寄存器间接寻址的寄存有BX、BP、SI和DI,控制寄存器2个即IP、PSW,段寄存器4个即DS、SS、CS和ES它们的含义分别是:其中在编程过程中程序的段基值由汇编程序装入的段寄存器是SS和CS ,由编程者用汇编指令将段基值装入的段寄存器是DS和ES,其具体指令是MOV AX,数据段段/附加数据段名,MOV DS/ES,AX,编程人员不能用指令去取其值或给其设置给定值的寄存器是 IP ,但是可以通过某些指令的执行而自动修改其内容,如JMP NEXT指令的功能是将目的地址的偏移量送入IP。
3.PSW是程序状态字寄存器又称为标志寄存器,用来反映微处理器在程序运行时的某些状态,其中的6个状态标志位分别是OF、SF、ZF、AF、PF和CF,反映了刚执行完算术或逻辑运算指令后的某些特征。
三个控制标志位是DF即方向标志、IF即中断标志位和TF陷阱标志。
如两个8位的二进制数相加其状态标志位中各标志的值是多少?10110101+10011011。
4.8086CPU数据总线16根地址总线是20根能访问的最大存储空间是1MB。
第3章存储器的分段1.在8086CPU中存储器的编址原则是按字节编址即每一个字节单元是一个存储器地址,在源程序中用常用十六进制数或符号来表示一个存储单元的地址。
任何相邻的两个字节地址可以构成一个字地址,约定用较小的那个地址来表示字地址。
程序员在编程时所用的地址称为逻辑地址,CPU访问的地址称为物理地址。
物理地址与逻辑地址的关系是:物理地址=段基值*16+偏移地址。
如有下列存储器的结构请按要求回答问题:① 0002H的字节地址的内容是多少?② 0002H的字地址的内容是多少?③若该存储地址所在的数据段的段基值是0F3BH,则逻辑地址为0004H的物理地址是多少?该物理地址的字单元内容是多少?④物理地址是0F3B1H的字节单元内容是多少?2.堆栈是由编程人员用软件在存储器中划出的一块存储区。
对堆栈的操作是在栈顶中进行的,由栈指针SP 来指示,堆栈的管理原则是先进后出。
堆栈是堆栈段寄存器SS指定的且在程序中是用段定伪指令来实现的即:STACK SEGMENT STACKDB 200 DUP()STACK ENDS 该段是定义了一个大小为200个字节的堆栈且SP的值是200H。
堆栈操作是按字进行的如向该堆栈压入2345H、5678H后栈指针SP的值是多少?若用指令来实现的指令序列如下:MOV AX,2345HMOV BX,5678HPUSH AXPUSH BX即此时的SP=01FCH。
3.根据学所的汇编语言知识在实现下列操作一般使用哪些寄存器①加法和减法:AX、BX、CX和DX。
②循环计数:CX、DX③乘法和除法:存放被乘数的寄存器是AX、AL,乘积保存在DX、AX中或AX中;存放被除数的寄存器是DX、AX和AX商存在AX余数在DX或商在AL余数在AH中。
④使用查表指令XLAT:将表首址送到BX寄存器中,查表的偏移量送入AL寄存中,查表的结果保存在AL 寄存器中。
⑤保存段址的寄存器:DS、ES、SS、和CS⑥表示运算结果为0:PSW程序状态字中ZF标志位进行反映。
⑦将要执行的指令地址:IP寄存器⑧将要从堆栈中取出数据的地址:SP指针指示寄存器。
第4章数据和指令的寻址方式1.计算机中的指令是由操作码和操作数两部分组成。
操作码指示计算机所要执行的操作;操作数指出在指令执行操作的过程中的操作对象。
操作数的表示有三种即立即数、寄存器操作数、存储器操作数。
汇编语言是一种用助记符来表示操作码、用符号地址或符号来表示操作数地址或操作数,它与机器指令是一一对应的。
3.指出下列指令的寻址方式(源操作数与目标操作数分别说明)P37页教材第3题① MOV CX,100 ;源操作数是立即数寻址,目标操作数是寄存器寻址。
② MOV [BX+SI],AX;源操作数是寄存器寻址,目标操作数是基址变址寻址。
③ MOV AX,[SI+20];源操作数是寄存器相对寻址,目标操作数是寄存器寻址。
④ MOV AX,ARRAY;源操作数是直接寻址,目标操作数是寄存器寻址。
⑤ MUL BL;源操作数BL是寄存器寻址,隐含的目标操作数AX或AL也是寄存器寻址。
⑥ INC WORD PTR[BX+30];源操作数是寄存器相对寻址,目标操作数是寄存器相对寻址。
⑦ SUB AX,[2000H];源操作数是直接寻址,目标操作数是寄存器寻址。
⑧ JMP BX ;操作数是段内间接寻址。
⑨ MOV AX,[BX+SI+5];源操作数是相对基址变址寻址,目标操作数是寄存器寻址。
⑩ MOV AX,BX;源操作数BX是寄存器寻址,目标操作数AX是寄存器寻址。
4.指出下列指令中存储器操作数物理地址的计算表达式,并指出对应的寻址方式P37页教材第4题。
① MOV AL,[DI];[DI]是寄存器间接寻址物理地址PA=DS*16+(DI)② MOV AX,[BP+8];[BP+8]是寄存器相对寻址物理地址PA=SS*16+(BP)+8。
③ MOV 10[BX+SI],BX;10[BX+SI]是相对基址变址寻址物理地址PA=DS*16+(BX)+(SI)+10。
④ MOV AL,[BX+8];[BX+8]是寄存器相对寻址物理地址PA=DS*16+(BX)+8。
⑤ MOV AL,DS:[BP+8];DS:[BP+8]是寄存器相对寻址物理地址PA=DS*16+(BP)+8。
⑥ MOV AX,ALFA[SI];ALFA[SI]是寄存器相对寻址物理地址PA=DS*16+(SI)+ALFA。
⑦ MOV AX,[2300H];[2300H]是直接寻址物理地址PA=DS*16+2300H。
⑧ MOV AX,[BX][SI];[BX][SI]是基址变址寻址物理地址PA=DS*16+(BX)+(SI)。
5.写出把首址为BLOCK的字数组的第6个字送到CX寄存器的指令序列,要求分别使用以下几种寻址方式①以BX的寄存器间接寻址。
MOV BX,OFFSET BLOCKADD BX,0AHMOV CX,[BX]②以BX寄存器相对寻址LEA BX,BLOCKMOV CX,[BX+0AH]③以BX、SI的基址变址寻址LEA BX,BLOCKMOV SI,0AHMOV CX,[BX+SI]第5章 80X86的指令系统1.要求学生熟练掌握下列指令的功能、语法规则及使用注意事项和用法。
①传送类指令:MOV、PUSH、POP、XCHG、XLAT。
②算术运算类指令:ADD、ADC、INC、SUB、SBB、DEC、NEG、CMP、MUL、DIV、CBW、CWD。
③逻辑运算和移位类指令;AND、OR、XOR、NOT、TEST、SHL、SHR、SAR、SAL、ROL、ROR、RCL、RCR④条件转移类指令:JZ、JNZ、JS、JNS、JO、JNO、JP、JNP、JC、JNC、JB、JNB、JA、JNA、JG、JNG、JL、JNL、LOOP、CALL、RET。
2.指出下列指令中哪些是非法并说明错误的原因。
① MOV DS,2000H;非法指令,2000H是立即数不能直接送到段寄存器DS中,应先将2000H送入AX寄存器再由AX传送给段寄存器DS。
② XCHG AL,100;非法指令,交换指令的源、目操作数不允许有立即数,应将100改为8位的寄存器或地址。
③ SUB [SI],[BP];非法指令,双操作数指令中不允许源、目操作数同时为存储器操作数,将[SI]或[BP]修改为寄存器。
④ INC [DX];非法指令,DX不能用来表示存储器操作数,能表示存储器操作数的只有BX、BP、SI、DI四个寄存器。
且对存储器操作数还加类型说明。
即可修改为INC BYTE PTR[SI]。
⑤ MUL 100;非法指令,乘法指令中的源操作数不允许是立即数,应将100修改为一个8位的寄存器BL 或其它的8位寄存器也行。
⑥ IDIV [BX];非法指令,除法指令的源操作数应该指明类型是字操作还是字节操作即[BX]前要加上属性操作符如BYTE PTR或WORD PTR。
3.DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1EAF6H)=091DH,试求单独执行下列指令后的结果。
① NOV CL,20H[BX+SI] ;CL=② MOV [BP][DI],CX ;(1E4F6H)=③ LEA BX,20H[BX][SI] ;BX=MOV AX,2[BX] ;AX=④ XCHG CX,32H[BX] ;CX=XCHG 20H[BX][SI],AX;(09226H)=4.使用移位指令和乘法指令分别实现乘法的运算,试写出将52乘以2的指令序列。
①用移位指令实现。
MOV AL,52SHL AL,1②用乘法指令实现。
MOV AL,52MOV BL,2MUL BL5.根据下图回答相关问题。
①U 1000中的U是什么命令?其中的1000是什么地址?②1390:1000中的1390是什么地址:③1436的含义是什么?④从图中可ADD AL,30指令在存储器的存放地址是多少?占多大的空间?6.试分析下面程序段完成什么功能?MOV CL,4SHL DX,CLMOV BL,AHSHL AX,CLSHR BL,CLOR DL,BL该程序实现了将由DX、AX组成的32位数向左移动4位。
7.试写出程序段把DX、AX组成的双字右移4位的指令序列。
MOV CL,4SHR AX,CLMOV BL,DLSHR DX,CLSHL BL,XLOR AH,BL8.已知数字0-9的ASCII码表的首地址是在当前数据段中偏移地址为0A80H开始,现要查数字5的ASCII 码,试写出用指令XLAT进行查找的指令序列。
MOV BX,0A80HMOV AL,5XLAT9.写出用单条指令可将累加器AX清零的4种方法① MOV AX,0000H② AND AX,0000H③ SUB AX,AX④ XOR AX ,AX10.将正确答案的字母序号填入横线上。