汇编语言复习题 (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
• 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
一、单项选择题(共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一、单项选择题(答案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)
汇编语言试题题目一:寄存器及栈操作假设有一段汇编代码如下,请根据代码的功能回答相应的问题: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用来存储累加结果。
汇编语言复习资料2
一、单选(每题1分,共20分)1. 可以向地址总线发出地址信息的指令是()。
A.mov ax,1B.push axC.mov ax,bxD.jmp ax2. 一个字单元可以存储()个bit。
A.1B.8C.16D.323. 此时ax的值为00C5H,执行完“add al,85H”后,ax中的值是多少?()A.0158HB.014AHC.0058HD.004AH4. 80386CPU的地址总线宽度为32根,80386CPU的寻址能力是()。
A.64KBB.1024KBC.16MBD.4096MB5. BIOS存储在下列哪种硬件中?()A.RAMB.ROMC.CPUD.CMOS6. 8086PC机一个段的最大长度为()。
A.64ByteB.64KbitC.1MBD.64KB7. 给定段地址为0002H,仅通过变化偏移地址寻址,8086CPU的寻址范围为()。
A.20H—2FHB.20H—30HC.20H—1001FHD.20H—10020H8. 用 [di]、[bp]的方式访问内存时,8086CPU默认的段寄存器依次是()。
A.ds、esB.ds、ssC.ss、dsD.es、ss9. debug加载.exe文件后,在对寄存器中的值进行改变之前,cx中的值有什么含义?()A.循环次数。
B.所加载的文件的字节数。
C.是系统默认的值,没有实际意义。
D.程序的长度。
10. 80386PC机开机后,CPU所执行的第一条指令的地址是()。
A.0FFH:00B.0FF0H:0FFHC.0FFF0H:0FFHD.0FFF0H:0F0H11. 读取,执行哪条指令CPU会修改两次IP?()A.pushB.pushfC.retD.mov12. 在debug中查看内存,显示如下:073F:0000 CD 20 3E A7 00 EA FD FF-AD DE 4F 03 A3 01 8A 03073F:0010 A3 01 17 03 A3 01 92 01-01 01 01 00 02 FF FF FF073FH:0013H处的字型数据是()。
汇编语言习题答案 (2)
第1章自测练习一、选择题(四选一)1.某个加法运算结果使标志ZF=1,则标志SF为A。
A 0B 1C 不改变原来的状态D 不确定2.可以为存储器操作数提供偏移地址的寄存器组是B。
A AX、BX、CX、DXB BX、BP、SI、DIC SP、IP、BP、DXD CS、DS、ES、SS3.8086/8088确定下一条执行指令物理地址的计算表达式为D。
A DS× 16+EAB ES× 16+EAC SS×l6+SPD CS×l6+IP4.某系列微机对存储器分段,如果每个段最多的字存储单元(16位二进制)是32K,那么表示段内字节单元偏移地址的二进制位数应是C位。
A 14B 15C 16D 205.十进制数-100的8位二进制数的补码为 D 。
A 10011011B 01100100C 10011101D 100111006.下列各个8位二进制数的补码中,绝对值最大的是 A 。
A 10001000B 11111110C 00000100D 000000017.16位有符号数的补码所表示的十进制数的范围是B。
A -32767~+32768B -32768~+32767C -65535~+65536D 0~655358.对数值83A7H作逻辑非运算后的结果是D。
A 83A8H B、73A8H C、7C59H D、7C58H9.指令“mov cx,[bp+16]”的源操作数采用的段寄存器是 B 。
A CSB SSC DSD ES10.指向程序堆栈区的段寄存器是 B 。
A CSB SSC DSD ES11.有效地址是指 C 。
A 存储器操作数的物理地址B 存储器操作数的段地址C 存储器操作数的偏移地址D 立即数的偏移地址12.寄存器间接寻址方式中,操作数在 C 中。
A 通用寄存器B 段寄存器C 主存单元D 堆栈13.指令“mov ax,es:[bx][si]”源操作数的物理地址是D。
汇编语言复习题
汇编语言复习题一、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。
每小题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.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区第一个字单元的物理地址是()。
A.12B5BH B.12B6BH C.12C59H D.12BFEH2.在IN AL,PORT指令中,PORT称为()。
A.立即数B.有效地址 C.端口地址 D.寄存器名3.在下列指令的中,不能实现把AX寄存器内容清零的指令是()。
A.SUB AX,AX B.XOR AX,AXC.OR AX,0000H D.AND AX,0000H4.条件转移指令JNE的测试条件为()。
A.ZF=0B.CF=0C.ZF=1D.CF=15.8086CPU在基址加变址的寻址方式中,变址寄存器可以为()。
A.BX或CX B.CX或SIC.DX或SI D.SI或DI6.设(AX)=1000H,NEG AXNOT AX执行上述两条指令后,正确的结果是()。
A.(AX)=1001H B.(AX)=0FFFH;C.(AX)=1000H D.(AX)=0111H。
7.串指令中的目的操作数地址一定是由()提供。
A.ES:[DI]B.SS:[BP]C.DS:[SI]D.CS:[IP]8.将DX的内容除以2,正确的指令是()。
A.DIV 2 B.DIV DX,2C.SAR DX,1D.SHL DX,19.用户为了解决自己的问题,用汇编语言所编写的程序,称为()。
A.目标程序B.汇编语言源程序C.可执行程序D.汇编程序10.用一条指令仅实现将AX←BX+SI的方法是()。
A.XCHG AX,[BX][SI]B.MOV AX,[BX+SI]C.LEA AX,BX[SI]D.LEA AX,[BX][SI]11.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是()。
A.1FFFH B.1998H C.1FFEH D.2002H12.一个字为()位二进制数。
A.8位B.16位C.32位D.64位13. 下列四个寄存器中,可作为八位寄存器的是()。
汇编语言复习题(2)
汇编语⾔复习题(2)汇编语⾔复习题第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中存储器的编址原则是按字节编址即每⼀个字节单元是⼀个存储器地址,在源程序中⽤常⽤⼗六进制数或符号来表⽰⼀个存储单元的地址。
汇编语言复习题
汇编语言复习题《汇编语言复习题》一、单选题1. 数字1的ASCII码值是( )。
A. 1B. 30HC. 31HD. 20H2.ASCII码字符使用( ) 位进行编码。
A. 3B. 7C. 8D. 163. 汇编语言源程序经过汇编后产生()文件。
A. .ASMB. .OBJC. .EXED. .DOC4.汇编语言源程序是()文件。
A. .EXEB. .ASMC. .OBJD. .DOC5. 汇编语言源程序中定义段的伪指令是()。
A. SEGMENT..ENDSB. PROC..ENDP C. MACRO..ENDMD. SEGMENT..END 6.汇编语言源程序中定义过程的伪指令是()。
A. SEGMENT..ENDSB. PROC..ENDP C. MACRO..ENDMD. SEGMENT..END7. 8086CPU的地址总线宽度为()。
A. 8B. 16C. 20D. 328.8086CPU的数据总线宽度为()。
A. 8B.10C.16D.209.下列哪个寄存器可拆分成2个8位寄存器()。
A. BPB. BXC. CSD. IP10. 8086CPU提供了()个16位寄存器。
A. 8B. 12C. 14D. 2211. DEBUG调试程序时查看寄存器内容的命令是()。
A.DB. EC. UD. R12.DEBUG调试程序时查看内存单元内容的命令是()。
A. RB. EC. UD. D13. 下列哪个寄存器用来指示当前栈顶的偏移地址()。
A. SPB. BXC. BPD. IP14. 下列地址信息与4015H:000FH确定的内存地址不同的是()。
A. 4013H:002FHB. 4010H:005FHC. 4000H:005FHD. 4015FH15. 下列哪个寄存器在编程时不能用来保存内存单元的偏移地址()。
A. DIB. CXC. BXD. SI16. 指令MOV AX,BX 中源操作数的寻址方式是()。
汇编语言练习2+答案
全国2005年10月高等教育自学考试汇编语言试题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.当执行ADD AX,BX指令后,若AX的内容为4E52H时,设置的奇偶标志位PF=0,下面的叙述正确的是( A)A.表示结果中含1的个数是奇数B.表示结果中含1的个数是偶数C.表示该数是奇数D.表示结果中低8位中含1的个数是奇数2.设物理地址(21000H)=20H,(21001H)=30H,(21002H)=40H。
如从地址21001H 中取出一个字的内容是( D)A.2030HB.3040HC.3020HD.4030H3.转移指令JMP NEAR PTR PROCA的转移范围是( A )A.8000H~7FFFHB.7FFFH~0FFFHC.80H~7FHD.0FH~7FH4.设CF=1,实现AL内容乘2的指令是( C )A.RCL AL,1B.SAR AL,1C.SHL AL,1D.ROR AL,15.算术右移指令SAR和逻辑右移指令SHR,两条指令执行结果完全相同的条件是( A )A.目的操作数最高位为0B.目的操作数最高位为1C.目的操作数为任意情况D.无论什么情况都不可能完全相同6.没有语法错误的输入指令是( A )A.IN AL,30HB.IN 30H,ALC.IN DX,ALD.IN AL,[BX]7.与LEA BX,BUF指令完全等效的指令是( C)A.MOV BX,BUFB.LDS BX,BUFC.MOV BX,OFFSET BUFD.MOV BX,WOKD PTR BUF8.设有变量VAR和标号LAB,不正确的指令是( C)P85A.LEA AX,VARB.LEA AX,LABC.JMP NEAR PTR VARD.JMP SHORT LAB9.设SP的初值为1000H,执行指令PUSH AX后SP的值是( C )A.0FFFHB.1001HC.0FFEHD.1002H10.下列指令执行后既能使AX=0同时又使CF=0,OF=0的是( A )P69A.XOR AX,AXB.AND AX,AXC.OR AX,AXD.TEST AX,011.在指令的操作数字段中,允许出现表达式,若BUF1与BUF2均为变量名,下面指令中正确的是( D )A.MOV DX,BUF1*BUF2B.MOV DX,BUF1/BUF2C.MOV DX,(BUF1*BUF2)-BUF1D.MOV DX,BUF2-BUF112.汇编语言源程序,可以是( D )A.可以直接由机器执行B.必须由编译程序生成目标程序才能执行C.必须由解释程序生成目标程序才能执行D.必须由汇编程序汇编成目标程序才能执行13. ORG 200HBUF DB 12H,34HMOV AX,WORD PTR BUF上述指令语句执行后AX中的内容是( A )A.3412HB.1234HC.0200HD.0012H14.伪指令DA1 DB 04H DUP(3 DUP(2),2 DUP(3))在数据区中能构成0203H操作数共有( C)A.07个B.04个C.03个D.02个15.设NUM1 EQU 100NUM2= 64H下面指令执行后,使BL中为全1的指令是( A)P139A.MOV BL,NUM1 EQ NUM2B.MOV BL,NUM1 LT NUM2C.MOV BL,NUM1 NE NUM2D.MOV BL,NUM1 GT NUM216.设非压缩BCD码(AL)=09H,(BL)=04H在执行SUB AL,BL指令后应选的校正指令是P68( B )A.DAAB.AASC.DASD.AAA17.设AX=9ABCH,DX=8765HPUSH AXPUSH DXPOP AXPOP DX上述4条指令执行后,AX,DX中内容分别是( D )A.AX=9ABCH DX=8765HB.AX=9ABCH DX=9ABCHC.AX=8765H DX=8765HD.AX=8765H DX=9ABCH18.DA1 EQU WORD PTR DA2DA2 DB 0ABH,0CDHSHL DA1,1SHR DA2,1上述两条指令执行后,DA1中两字节单元内容分别是( D )A.0ABH,0CDHB.2BH,9BHC.4DH,57HD.56H,9BH19.无条件转移指令JMP实现段间间接转移,转移的目标地址在( B )A.某个字存储单元中B.某个双字存储单元中P86C.某个16位通用寄存器中D.两个16位通用寄存器中20.检查BUF单元的内容是否为正偶数,下面程序段正确的是( D )A.MOV AL,BUFB.MOV AL,BUFJS K1 AND AL,11HSHR AL,1 JNE K1JC K1 ……;是正偶数……;是正偶数K1:……K1:……C.MOV AL,BUFD.MOV AL,BUFJNP K1 TEST AL,81HTEST AL,80H JNE K1JNE K1 ……;是正偶数……;是正偶数K1:……K1:……二、填空题(本大题共5小题,每小题1分,共5分)21.8086/8088存贮器地址分段时,每个段起始地址的特征是__偶地址__。
汇编语言程序设计复习题
围内。( )
A. -126~129
B. -128~127
C. -127~128 D. -129~126
23. 在循环次数已知的情况下,采用哪种方法控制循环程
序最方便。( )
A. 正计数法
B. 倒计数法
C. 寄存器终值法 D. 条件控制法
24. 当CX=0时,REP MOVSB执行的次数为。 ( )
A. 1次
3. 下面的子程序不完整,将它补充完整。
子程序的说明文件如下:
子程序名:FMAX
子程序功能: 从一组带符号的字节数据中找一个最大数
入口条件: DS:SI=数据的首地址, CX=数据的个数
出口条件: AL=最大数
FMAX PROC
FMAX1: MOV AL,[SI]
FMAX2: INC SI
DEC CX
A. BX的内容
B. SP+BX之和
B. IP+[BX]之和 D. BX指出的内存单元之内容
15.A≥B时转移的转移指令为(A、B为带符号数) ( )
A. JA
B. JAE
C. JG
D. JGE
16. 已知X,Y为带符号数, 两数比较后, 欲判断X≤Y发生
转移, 应使用指令 ( )
A. JBE
B. JL
B. 0,1
C. 1,0
D. 1,1
19. 条 件 转 移 指 令 的 转 移 目 标 距 该 指 令 的 距 离 范 围 为
()
A. -128~127
B. -126~129
C. -130~125
D. -127~128
20. NEXT是程序中标号,下述哪个程序段不能实现转移到
NEXT•语句执行 ( )
汇编复习题2
汇编复习题21.填空题(1)汇编语言指令由两部分组成:表示指令的操作内容;表示指令在执行过程中所用到的数据信息。
(2)在16位CPU的寄存器间接寻址方式中,若用;;作为间接寻址的寄存器,则操作数在段中;若用作为间接寻址的寄存器,则操作数在段中。
(3)在16位CPU的基址变址寻址方式中,基址寄存器可以为或;变址寄存器可以为或;若用作为基址寄存器,则操作数在段中,若用作为基址寄存器,则操作数在段中。
(4)设AX=2000H,BX=2300H,则在执行了指令CMP AX,BX后,标志CF= ;ZF= 。
(5)当执行指令DIV BL后,被除数在中,所得商在中,余数在中。
(6)当执行指令MUL BX后,被乘数在中,所得积高16位在中,所得积的低16位在中。
2.选择题(1)若栈顶的物理地址为12000H,当执行完指令PUSH BX后,栈顶物理地址是。
A.12001HB.12002HC.11FFFHD.11FFEH(2)在程序运行过程中,确定下一条指令的物理地址的计算表达式是。
A.DS*16+SIB.CS*16+IPC.SS*16+SPD.ES*1++DI (3)下面指令执行后,将改变寄存器AX内容的指令是。
A.OR AX,AXB.AND AX,BXC.TEST AX,01HD.CMP AX,1 (4)设AH=79H,当执行指令ADD AH,98H后,标志位CF和OF的值分别是。
A.0,0B.0,1C.1,0D.1,1(5)要使寄存器AL的最低位置1,应该使用的指令是。
A.AND AL,01HB.XOR AL,01HC.OR AL,01HD.NOT AL(6)将寄存器AX的内容乘以2的正确指令是。
A.SHL AX,1B.SHR AX,1C.ROL AX,1D.RCR AX,1 (7)下列指令中操作数在代码段中的是:。
A、MOV AL,25HB、ADD AH,BLC、INC BYTE PTR DS:[25H]D、CMP AL,BL (8)用MOV指令将十进制数86以组合型BCD码格式送入AX正确的指令是:。
汇编语言期末复习题(2012)
【王爽-汇编语言】第二章检测题分析第二章检测题分析一、下列关于8086CPU的工作原理的描述错误的是_____。
1、汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。
2、CPU在访问内存时,采用“段地址*16+偏移地址”的形式给出要访问的内存单元的物理地址。
3、任意时刻,CS:IP指向的内容即是此刻CPU正在执行的指令。
4、传送指令能够更改所有通用寄存器的内容。
二、在DEBUG中,____选项中的命令可以修改内存单元的内容1、a2、d3、t4、u三、下列说法中正确的是:____1、一条指令被执行后,IP的值进行改变。
2、当CPU执行完当前指令返回debug后CPU就闲下来不再进行工作。
3、e命令可将所有内存单元中的数据进行改变。
4、CPU将CS:IP所指向的内存单元中的数据当作指令来执行。
四、下面哪个是错误的指令_____1、mov ax,bx2、add al,0f5H3、mov al,bh4、add al,100H五、16位结构的CPU 不一定具备的特性是:____1、运算器一次最多可以处理16位的数据2、寄存器的最大宽度为16位3、寄存器和运算器之间的通路为16位4、地址总线为16根六、下列说法中正确的是:____1、8086CPU采用“段地址*16+偏移地址=物理地址”的寻址模式,所以内存是由一个一个的段组成,每一个段有一个段地址。
2、物理地址为ffff0H的内存单元的偏移地址可能为ffffH。
3、一个段的大小可以是8Byte。
4、在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行。
【王爽-汇编语言】第三章检测题分析1.能够只将al中的内容压入栈的指令序列是_____。
1、push al2、pop ax3、mov ah,0push ax4、mov ax,0push ax2.下列说法正确的是:____1、数据段和代码段的段地址不能相同。
2、指令mov ax,bx执行完后bx中的值为零。
汇编语言程序设计第二次作业
首页一.单选题(共40题,40.0分)1AOV网是一种( )。
•A、有向图•B、无向图•C、无向无环图•D、有向无环图正确答案: D 我的答案:D得分: 1.0分2指令“MOV AX,0FH XOR 1111B”执行后的结果是( )。
•A、0FFFFH→AX•B、0FH→AX•C、1111B→ AX•D、0→AX正确答案: D 我的答案:D得分: 1.0分3已知(AL)=35H, (BL)=57H,执行指令ADD AL, BLDAA后,AL的值为()。
•A、92HB、8CHC、92D、CH正确答案: A 我的答案:A得分: 1.0分4设Huffman树的叶子结点数为m,则结点总数为( )。
•A、2m•B、2m-1•C、2m+1•D、m+1正确答案: B 我的答案:B得分: 1.0分5以下程序段中,有数据2000H的字单元的偏移量分别是( )。
ORG 20HVAR1 DB 0,’0’,20H,0,20HDW VAR1•A、03H•B、21H•C、22H•D、23H•E、24H正确答案: D 我的答案:E得分: 0.0分6图所示二叉树结点的前序遍历的序列为( )。
•A、E、G、F、A、C、D、B•B、 E、A、G、C、F、B、D•C、E、A、C、B、D、G、F•D、E、G、A、C、D、F、B正确答案: C 我的答案:C得分: 1.0分7ORG 100HNUM EQU 42HDA1 DW $+56H……MOV BX,0FFSET DA1上述程序段执行后BX中的值是( )。
•A、42H•B、156H•C、100H•D、157H正确答案: C 我的答案:C得分: 1.0分8对线性表进行二分法查找,其前提条件是( )。
•A、线性表以链接方式存储,并且按关键码值排好序•B、线性表以顺序方式存储,并且按关键码值的检索频率排好序•C、线性表以顺序方式存储,并且按关键码值排好序•D、线性表以链接方式存储,并且按关键码值的检索频率排好序正确答案: C 我的答案:A得分: 0.0分9为实现单步操作,即每执行完一条指令就停下来,必须设置标志位( )。
汇编语言考试复习题及答案
一、单项选择题(从下列每题的四个选择中选择一个正确的,填入答题纸的相应位置。
每小题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.执行下面的程序段后,DA T1单元的值是。
DAT1 DB 12H,34HDAT2 DB 56H,78HMOV AX,WORD PTR DAT1CMP AX,WORD PTR DAT2JA DONEMOV BX,WORD PTR DAT2MOV WORD PTR DA T2,AXMOV WORD PTR DA T1,BXDONE:HLTA)12H B)34H C)56H D)78H8.下列指令中,正确的一条是。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。