汇编语言复习题 (2)

合集下载

汇编语言习题2

汇编语言习题2

选择1、设AX中有一带符号数8520H,执行SAR AX,1指令后,AX中的值是()A. 0C290HB.0A40HC. 4290HD.0C260H2、下列中指令执行后,能影响标志位的指令是()A.PUSHFB.POPFC.JNLE OPRD.LOOPZ LOP3、循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是()A.CX≠0且ZF=1B.CX≠0且ZF=0C.CX≠0或ZF=1D.CX≠0或ZF=04、下面两个传送指令语句中源操作数寻址方式是()V AR1 DW 32HV AR2 EQU32H┇MOV AX,V AR1MOV BX,V AR2A.都是立即数寻址B.前一条指令是立即数寻址,后一条指令是直接寻址C.前一条指令是直接寻址,后一条指令是立即寻址D.都是直接寻址5、ARRAY DW 6,9,$+4,10H,1,$+4┇MOV AX,ARRAY+4设变量ARRAY的偏移量是0084H,上述指令执行后AX中的内容是()A.008CHB. 0009C.0090HD.0001H6、指令语句中标号的错误定义是()A.在代码段中的名字项定义,后面紧跟冒号B.用EQU伪指令定义C.用LABEL伪指令定义D.由“JMP标号”指令定义7、为在一连续的存储单元中依次存放数据41H,42H,…48H,下面的数据定义语句中有语法错误的是()A.DB 41H,42H,43H,44H,45H,46H,47H,48HB.DW 4142H,4344H,4546H,4748HC.DB …ABCDEFGH‟D.DW …BA‟,…DC‟,…FE‟,…HG‟8、设NUM=11011011B,指令“MOV AX,NUM SHL 3”执行后AX中的值是()A.11011011000BB.11011000BC.00011011BD.00011011011B9、用REPE SCASB指令对字符串进行扫描,如CX≠0时,扫描结束,那么表示()A.在字符串中遇上第一个AL中指定的字符B.在字符串中有一个AL中指定的字符C.在字符串中有一个不是AL中指定的字符D.在字符串中遇上第一个不是AL中指令的字符10、设(SP)=0028H,执行段内返回指令RET 6后,SP的内容是()A.0036HB.0022HC.0030HD.0020H11. 当执行完下列指令序列后,标志位CF和OF的值为( )MOV AH,85HSUB AH,32HA. 0,0B. 0,1C. 1,0D. 1,112. 已知RET是属性为NEAR子程序中的返回指令,执行RET前SP=100,执行后,SP的内容为( )A. 102HB. 104HC. 104D. 10213. 指令MOV AX,-10[SI]的源操作数的寻址方式为( )A. 基址寻址B. 基址变址寻址C. 变址寻址D. 寄存器间接寻址14. 确定下列哪些数据在汇编语言中的表示是正确的( )A.19B+25D B. 25 AND 0D3HC.108Q-102 D. 101B MUL 0ABH15. 已知AL,BL中为无符号数, 若使AL≤BL时转到标号OK, 哪个程序段不能实现此功能( )A. CMP AL,BLB. CMP AL,BLJC OK JBE OKC. CMP BL,ALD. CMP BL,ALJNB OK JNC OK16. NEXT是程序中标号,下述哪个程序段不能实现转移到NEXT语句执行()A. JMP NEXTB. MOV BX,OFFSET NEXTJMP WORD PTR[BX]C. DA TA DW NEXTD. LEA AX,NEXTJMP DA TA JMP AX17. DA TA的定义如下:DATA DW 1234H现想把12H取入到AL寄存器,可以实现该功能的是()A. MOV AL,BYTE PRT DATAB. MOV AL,BYTE PTR DATA+1C. MOV AL,HIGH DATAD. MOV AX,DATA18、若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX= ? ( )A. 1400HB. 77F8HC. 0000HD. 0FFFFHA.185A2HB. 0AB568HC.01004HD. 00020H19、DW 10 DUP (2 DUP(3),300H)上述定义的数据单元中,能构成0303H字存储单元的个数是()A.10HB.20HC.1EHD.9H20、用一条指令实现将寄存器BX和SI的内容相加,结果并送入AX中,这条指令是()A.ADD AX,[BX][ST]B.MOV AX,[BX][ST]C. LEA AX, [BX][SI]D. AND AX, [BX][SI]1、A2、B3、B4、C5、A6、D7、B8、A9、D 10、A 11、C 12、B 13、A 14、C 15、B 16、D 17、C 18、B 19、A 20、D程序分析1.某数据段的起始定义如下:ORG 0030HDA1 DB 0,'0',30HDW DA1数据为3000H字存储单元的偏移地址是____30H ______2.若有如下指令和伪指令序列:DA1 EQU BYTE PTR DA2DA2 DW 0ABCDH┇SHL DA1,1SHR DA2,1上述指令序列执行后,DA2字存储单元的内容是____55CDH _______4. 阅读程序回答问题STRING DB …ABCDEFGHIJ''MOV AH,01 ;从键盘输入字符1~9之间的一个数字INT 21HAND AL,0FHDEC ALXOR AH,AHMOV BX,OFFSET STRINGADD BX,AXMOV BL,[BX]MOV AH,02H ;显示输出INT 21H试回答:(1)上述程序段的功能是什么?根据从键盘输入的字符…1‟~…9‟,确定在显示器上显示STRING中第几个字符。

汇编语言期末复习题

汇编语言期末复习题

(4)2000H:1010H
(2) 9.下列指令正确的是( (1)CMP [SI], [DI] (3) (3) ROL AX, 2

) (2) MUL AX, 100H (4) OR AH, CL )
(4) 10.假设(AX)=32A1H, 执行指令 AND AH, AL 之后,(AX)=( (5) (1)0020H (2)20A1H (3)0B3A1H (4)2000H
5
3. 设有以下数据段: DATA SEGMENT VA1 DW 234H,456H,0FE00H VA2 DB 34H,56H,78H,0FEH DB $-VA1 RES DB 10H DUP(3,4,5) DATA ENDS 写出下面程序段执行后RES的前五 个字节单元的内容分别是多少? MOV SI, 0 MOV CX,4 LOP: MOV AL,BYTE PTR VA1[SI] MOV RES[SI], AL INC SI LOOP LOP
…….
9
七、 DATA SEGMENT BUF DB ‘ACDECGWGH’ LENG EQU $-BUF RES DB ? DATA ENDS STACK1 SEGMENT STACK DW 20H DUP(0) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK1,DS:DATA START:MOV AX,DATA MOV DS,AX
4. 设 (AX)=0CF77H,(CX)=504H CLC SAR AX,CL XCHG CH,CL SHL AX, CL 上述指令执行之后, (AX)=( ),CF=( ).
6
六、编程序段 1. 下面程序段的功能是将数据 09 转 换 为 对 应 的 ASCII 码 。 试将空白处填上适当的指令。 VA DB 0,1,2,3,4,5,6,7,8,9 ASC DB 10 DUP(0)

汇编语言 习题2

汇编语言 习题2

• 13、+65528;-32760 14、20A8H;11488H 15、状态;控制 16、CF;OF
17.已知:BX=1357H,DI=2000H,DS=2000H, CS=4000H,分别指出下面各指令中存储器操作数 的物理地址。 (1)MOV AL,[BX] (2)MOV CS:[BX+DI],AH
3.指令 mov ax,1020h中源操作数是( ),它的寻址 方式是( )寻址方式,操作数存放在( )段中,汇编 后的机器码为三个字节,从低地址到高地址分别为 B8、 ( )、( )。
指令 mov ax,1020h中操作数是( 1020h ),它的寻址 方式是(立即数)寻址方式,操作数存放在(代码)段中, 汇编后的机器码为三个字节,从低地址到高地址分别 为 B8H(20H10H)。注意数据在内存中是小端方式存放。
(6) 汇编语言是最快最有效的计算机语言,在自动控制、通 信与接口中是必不可少的。
(7) 汇编语言与机器低层关系不大,所以它具有很好的移植 性。 (8) 8088/8086的控制寄存器有IP和PSW,它们都是16位寄 存器。 (9) SP是保存当前栈顶地址的寄存器。
)。A
)。 B
)。 A
例:用( )指出下一条要执行的指令所在单元的偏移地址。 A.IPA B.SP C.通用寄存器 D.段寄存器 例:在计算机的CPU中执行算术逻辑运算的部件是( A.ALU B.PC C.AL D.AR A 例:计算机中存储信息的基本单位是一个( )位。 A.2进制 B.8进制 C.10进制 D.16进制 B )。
例:设物理地址(10FF0H) =10H,(10FF1H)=20H,(10FF2H)=30H,从地址10FF1H中 取出一个字的内容是( )。 B A.1020H B.3020H C.2030H D.2010H 例:代码段寄存器是( )。 D A.IP B.SP C.DS

汇编语言练习题2

汇编语言练习题2

一、单项选择题(共20题)1.对于有符号的数来说,下列哪个值最大( D)A:0F8H B:11010011B C:82 D:123Q2.下列有关汇编语言中标号的命名规则中,错误的是(D )A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符C:?和$不能单独作为标号 D:.号不可位于标号首3.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是(C )。

A.C+D=B B.A+D=BC.B=D D.A>C>D4.下列四个寄存器中,可作为十六位寄存器的是(C )A.DL B.CLC.BP D.EBX5.8088/8086存储器分段,每个段不超过( D)A.64K个字B. 32K个字节C.1兆个字节D.64K个字节6.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式( B)A:寄存器寻址B:相对基址变址寻址C:变址寻址D:基址变址寻址7.连接程序把汇编语言源程序生成的目标文件(.OBJ文件)转换成( B)。

A..OBJ文件B..EXE文件C..LST文件D..CRF文件8.在程序运行过程中,确定下一条指令的物理地址的计算表达式是( A)。

A. (CS)×16+(IP)B. (DS)×16+(DI)C. (SS)×16+(SP) D.(ES)×16+(SI)9.若AX= - 15要得到AX=15应执行的指令是(A )A.NEG AXB.NOT AXC.INC AXD.DEC AX10.8086/8088系统执行传送指令MOV时(A )A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志11.执行下列程序后,(AL)=(D )H。

DATA SEGMENTTAB DB ‘0123456789’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX, DATAMOV DS, AXMOV BX, OFFSET TABMOV AL, 04XLAT TAB…A.04 B.0400C.33 D.3412.下列指令中操作数在代码段中的是(A )。

汇编语言程序设计复习2(带答案)1

汇编语言程序设计复习2(带答案)1

汇编语言程序设计练习题2一、单项选择题(答案BDDBA BDADC CCAC CBBDA BDADA BCCB )1、使计算机执行某种操作的命令是( )A.宏指令B.指令C.伪指令D.语句2、某存储单元的物理地址是12345H,可以作为它的段地址有()。

A.2345H B.12345HC.12340H D.1234H3、8088/8086存储器分段,每个段不超过()A.64K个字B.32K个字节C.1兆个字节D.64K个字节4、计算机能直接识别并执行的语言是( )A.汇编语言B.机器语言C.高级语言D.低级语言5. 8086/8088系统执行传送指令MOV时()A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志6、以下各个指令中正确的是()。

A. MOV CS, DXB. MOV DS, BPC. IN 20H,ALD. MOV AH, BX7、下列对OUT指令的叙述正确的是()。

A. 实现从端口中读出数据B. 能直接访问的端口范围是0~1KBC. 能访问的端口为64KBitD. 只能用DX做为间接寻址的寄存器8、已有汇编语句“V AR EQU 1220H”,则语句“mov AX, V AR”中源操作数的寻址方式为()。

A. 立即寻址B. 直接寻址C. 寄存器间接寻址D. 基址寻址9、与MOV BX,OFFSET DATA1指令完全等效的指令是()。

A.MOV BX,DATA1B.LDS BX,DATA1C.LES BX,DATA1D.LEA BX,DATA110、下列指令中段默认为堆栈段的是()A.MOV AX,[BX+SI+10]B.ADD AX,ES:[SI]C.SUB BX,[BP][DI]D. MOV DX,[1000H]11、已知DS=2000H,ES=1000H, SI = 0800H,内存10880H开始的两个单元中存放5678H,内存20880H开始的两个单元中存放8765H,则语句“LEA BX,[SI+80H]”执行后BX 的值为()。

(完整版)汇编语言复习题

(完整版)汇编语言复习题

汇编语言程序设计复习题一、单项选择题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。

汇编语言复习题附答案

汇编语言复习题附答案

汇编语言复习题附答案一、选择题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的状态寄存器中的条件码标志来决定是否跳转到指定的标签处执行。

汇编语言试题 (2)

汇编语言试题 (2)

汇编语言试题题目一:寄存器及栈操作假设有一段汇编代码如下,请根据代码的功能回答相应的问题:push ebpmov ebp, espmov eax, dword ptr [ebp + 8]add eax, dword ptr [ebp + 12]pop ebpret1.以上汇编代码中,push ebp和pop ebp的作用分别是什么?2.mov ebp, esp的作用是什么?有什么作用范围?3.dword ptr是什么意思?4.请解释ret的作用。

解答:1.push ebp的作用是将ebp的值保存到栈中,而pop ebp的作用是将栈中的值弹出,并将其赋给ebp寄存器。

这是函数调用的常用操作,用来保存和恢复函数的堆栈帧。

12.mov ebp, esp的作用是将栈顶地址存入ebp寄存器中,以便在函数内部可以通过ebp寄存器来访问函数参数和局部变量。

作用范围是当前函数内部。

3.dword ptr是一个内存访问修饰符,用来指定要访问的内存单元的大小和类型。

在本题中,dword ptr指示要访问的内存单元是一个 32 位的双字(double word)。

4.ret指令用于函数返回,它将弹出栈顶的返回地址,并跳转到该地址执行,从而实现函数的返回。

题目二:条件分支和循环请完成以下汇编代码的功能描述,并回答相应问题:mov eax, 10mov ecx, 0loop:cmp eax, 0je endadd ecx, eaxdec eaxjmp loopend:1.请描述以上汇编代码的功能。

2.eax和ecx分别用来存储什么数据?请解释mov eax, 10和mov ecx,0的作用。

3.cmp eax, 0和je end的作用是什么?24.dec eax是什么意思?5.jmp loop的作用是什么?解答:1.以上汇编代码的功能是计算从 10 累加到 1 的结果,并将结果存储在ecx寄存器中。

2.eax用来存储循环计数器(初始值为 10),ecx用来存储累加结果。

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

汇编语言复习题第2章8086CPU寄存器的结构及使用1.8086CPU由指令执行部件EU和总线接口部件BIU两部分组成。

其中EU的功能是控制和执行指令,主要由算术逻辑部件ALU、EU控制部件、8个16位寄存器和一个标志寄存器FLAGS组成。

BIU的功能是从存储器预取指令和数据,以及所有EU需要的总线操作,实现CPU与存储器和外设间信息传递。

BIU由指令队列、指令指针寄存器、段寄存器、地址加器组成。

2.Intel8086CPU共有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 STACKDB200DUP()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。

③MOV10[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]。

⑤MUL100;非法指令,乘法指令中的源操作数不允许是立即数,应将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=XCHG20H[BX][SI],AX;(09226H)=4.使用移位指令和乘法指令分别实现乘法的运算,试写出将52乘以2的指令序列。

①用移位指令实现。

MOV AL,52SHL AL,1②用乘法指令实现。

MOV AL,52MOV BL,2MUL BL5.根据下图回答相关问题。

1U1000中的U是什么命令?其中的1000是什么地址?21390:1000中的1390是什么地址:31436的含义是什么?4从图中可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.将正确答案的字母序号填入横线上。

①下列指令中操作数在代码段中的是:A。

相关文档
最新文档