8086 程序设计仿真练习题
汇编语言程序设计—模拟试题六

模拟试题六一.选择题。
(单项选择,30分)1.下面说法正确的是()A.8086/8088为20位CPU。
B.不同的逻辑段的段地址有可能相同。
C.同一个逻辑段内所有单元的段地址相同,而偏移地址各不相同。
D.SP寄存器指示下一条要执行的指令的偏移地址。
2.Pentium CPU有32根地址总线,内存的物理地址也为32位,则该CPU的寻址空间大小为(1G =1024M)()A.256MB. 16MC.1GD. 4G3.当SS=9876H, SP=4328H,执行POPF指令后,堆栈顶部的物理地址是()A. 9CA8AHB. 9CA90HC. 9CA86HD. 0DB00H4.SAR(算术移位指令)可作一定程度上的除2运算,若AL中的内容为93H,则指令SAR AL,1执行后,AL中的内容为()A.49H B. C9H C. 89H D. 92H5.已知(AL)=41H,(AH)=5AH,CPU执行SUB AL,AH指令后,标志寄存器各位的值正确的是()A.SF=1,ZF=0,CF=1,OF=0B.SF=0,ZF=0,CF=1,OF=0C.SF=1,ZF=0,CF=0,OF=1D.SF=0,ZF=1,CF=0,OF=16.已知(AL)=88H。
如果该数是一个有符号数,它的十进制值为X;如果它是一个压缩的BCD码,它的十进制值为Y;执行ADD AL,03H DAA指令序列后,AL的十六进制值为Z。
则()A.X=120,Y=-120,Z=91H C. X=-120,Y=120,Z=8BHB.X=120,Y=-88,Z=8BH D. X=-120,Y=88,Z=91H7.下列指令使用不正确的是()A.SAL [100H], 1 C. MUL BYTE PTR 10H[BX+SI]B.AND BL, [BP+SI] D. MOV AL, -1008.下列指令使用正确的是()A.MOV DS, IBABH C. MOV BYTE PTR[BX], BYTE PTR [SI]B.POP DL D. ADD BYTE PTR [100H], -19.有符号数比较大小所用的跳转指令是()A.JC和JE B. JS和JZ C. JA和JB D. JL和JG10.用一条指令实现将寄存器BX和SI的内容相加,结果并送入AX中,这条指令是()A. ADD AX,[BX][SI] C. MOV AX, [BX][SI]B. AND AX, [BX][SI] D. LEA AX, [BX][SI]11.下面指令可能不能够将AX清零的是()A.MOV AX,0 C. AND AX,0B.XOR AX,AX D. SBB AX,AX12.下面指令不能够将AX和BX内容调换的是()A.XCHG AX, BX C. XCHG AL, BLXCHG AH, BHB.PUSH AX D. MOV CX, AXPUSH BX MOV BX, CXPOP AX MOV AX, BXPOP BX13.定义宏Max,求两个数的最大数。
《微机原理》第04章 习题

习题1 习题
1.编写 编写8086汇编语言程序 , 将寄存器 的高 位传 汇编语言程序, 的高8位传 编写 汇编语言程序 将寄存器AX的高 送到寄存器BL, 位传送到寄存器DL 送到寄存器 ,低8位传送到寄存器 位传送到寄存器
习题2 习题
2.将寄存器 的内容从低到高位的顺序分成 组 , 将寄存器DX的内容从低到高位的顺序分成 将寄存器 的内容从低到高位的顺序分成4组 并将各组数分别送到寄存器AL,BL,CL和 DL( 如 并将各组数分别送到寄存器 和 ( DX=6D82H,分成:06H、0DH、08H、02H)。 ,分成: 、 、 、 )
MOV AX,MEN MOV BX,AX SHR AX,1 JC PO_1 MOV MEMB,BX JMP DONE PO_1: MOV MEMA,BX : DONE:
习题4 习题
4.试统计 个数中偶数的个数,并将结果在屏幕显示 试统计9个数中偶数的个数 试统计 个数中偶数的个数,
SI BUFF 3BH 47H 8DH -75 0A4H 69H -2EH 0CCH 200 0000H 0001H 0002H 0003H 0004H 0005H 0006H 0007H 0008H
逻辑左移
CF
0 1 XXX XXXX 0 XXX XXXX
SHL AL,1 ADC DL,0
ADC指令实现 指令实现DL+CF+0 指令实现 如果是负数, 为 , 个数记录加1 如果是负数,CF为1,则DL个数记录加 个数记录加
DATA SEGMENT BUFF DW 6700H,9E00H,-6A00H,0A0BH,6D00H NUM DB $-BUFF MEM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA , START:MOV AX,DATA MOV DS,AX MOV CX,NUM LEA BX,BUFF
程序设计仿真练习题

8086程序设计仿真练习题
1、数组STRAING中存放着多个8位有符号数,以“$”结束,要求
分成正数组和负数组分别存放,并统计两个数组的个数,分别存于正、负数组的第一个字节。
2、将数据块DAT1中的20个单字节数,复制到DAT2中,并从
中检索与2EH相同的数,将此单元的数换成空格符。
如有多个与2EH相同的数,要求统计出个数,存在寄存器DL中。
3、将变量VAR1中的16位二进制数取反,并统计原数中1的个数,
将个数存在变量VAR2中。
4、找出数据块DAT1中的15个8位有符号数中,最大的偶数和最
小的奇数,分别存在变量MAX和MIN中。
5、将变量VAR1中的16位二进制数,变成4个ASCⅡ码,存在VAR2
开始的4内存单元中。
6、将数据块DAT1中的多个8位有符号数,数据块以0结尾(数据块不包括0),按照从小到大的顺序排列
7、内存单元X中有一个8位有符号数,按下式计算Y值,并将Y值
存于其后的单元(注意数据的大小)。
编写完整的汇编语言程序。
⎪⎩
⎪⎨⎧>-=<+=0305000252x x x x x y 8、数组BUF1中有10个BCD 码,求出其累加和及平均值,分别存在变量SUM 和A VER 中。
9、数据块X 中有8个8位无符号数,分别为记为X1、X2、….. X8, 试计算Y=X1+X2+X3-X4-X5+X6-X7+X8的值,并存在内存中。
10、利用调用子程序的方法,将不大于9999的一个16位二进制数转换成十进制数,以组合BCD 码的形式存在2个内存单元中。
(完整版)华中科技大学80X86汇编语言程序设计试卷

《汇编语言程序设计》网络学院模拟试卷一2004.4班级________________ 姓名______________ 学号______________ 成绩______一、改错题(10分,每题1分,在错误处划线,线下写上正确答案)1. SHR BH, 82. ADD [BX], –153. LEA POINT, BUF4. IN DX, 2005. PUSH DH6. MUL 257. XLAT BX, TAB8. REPNZ MOVSW9. MOV AX, 2[SI][DI] 10. MOV [BX], [SI]二、单选题(20分,每题1分)1.MOV指令的特点是________。
A.影响DF B.影响SF C.影响CF D.不影响标志位2.使用寄存器间接寻址方式访问堆栈中某变量时,要选用________寄存器。
A.BX B.BP C.SI D.SP3.8086标志寄存器中的三个控制标志是________。
A. IF、PF、SF B.DF、OF、CF C.DF、IF、TF D.TF、AF、IF 4.若有符号数运算的结果溢出,则置________为1。
A.OF B.CF C.SF D.IF5.若某存贮器操作数的偏移地址在SI中,访问该操作数应采用________寻址方式。
A.立即B.寄存器C.寄存器问址D.直接6.串操作指令中,目的串的逻辑地址应为________。
A.DS:[SI] B.DS:[DI] C.ES:[DI] D.ES:[SI] 7.不在本模块定义而在本模块中引用的符号称________符号。
A.公共B.局部C.自定义D.外部8.若(CL)= 4,(AX)=0FF0FH,执行语句“ROR AX,CL”后,(AX)=________。
A.0FFFFH B.0FFF0H C.0F0FFH D.0FFFH9.已知AL中存放着一个压缩BCD码,为实现AL减1操作,应选用________指令序列。
MCS_8086习题3

习题3:1. 编写程序段,将2个32位无符号数DAT1和DAT2相乘,结果保存在64位无符号数Result 中;2. 有2个4字节无符号数分别存放在扩展段2000H 和3000H 开始的单元中,低位在前,高位在后,将两数相加,结果存放在数据段2000H 开始的单元中,请编写程序段完成以上功能;3. 8086系统中,请说明下列指令的源操作数的寻址方式是什么?1)MOV AX, 1234H 2)MOV AX, [1234H] 3)MOV AX, [BX]4)MOV AX, 1234H[BX + SI] 5)MOVSB 6)IN AL, DX4. 请在下表中画出下列数据段以十六进制表示的各单元值(表格中每个单元表示一个字节),并写出变量var1, var2, var3的偏移地址和cnt 的值。
data SEGMENT para ORG 30Hvar1 DB -2, ‘A ’, 2 dup(‘23’) var2 DW -1 cnt EQU $-var1 var3 DW var2 data ENDS5. 以下程序实现将变量var 进行var*10+600的操作,并将计算结果保存在变量result 中,当程序执行到地址M5的时候,请在以下表格中画出当前堆栈指针的位置和堆栈里的内容(程序断点可以用标号,在堆栈中可用寄存器名代表保存的内容,SS 的内容不用指定,表格的每个单元表示一个字)。
(6分)低地址高地址0030Hdata segmentvar dw 1000result dd ?data endssseg segment stackdb 100 dup(?)sseg endscode segmentassume cs:code, ds:data, ss:ss_seg main proc farpush dsmov ax, 0push axmov ax, datamov ds, axmov ax, varM1: c all CaculateM2: d w 10M3: d w 600M4: l ea bx, resultmov [bx], axmov [bx+2], dxretmain endpCaculate procpush bpmov bp, sppush sipushbx 高地址低地址mov bx, [bp+2]mov si, cs:[bx]mul siM5: a dd ax, cs:2[bx]adc dx, 0add bx, 4mov [bp+2], bxpop bxpop sipop bpretCaculate endpcode endsend main6. 问答题1)若AL = 81H,则执行指令CBW后AH的内容为多少?2)若BL = BEH,执行下列指令序列,则每执行一步,BL和CF的值为多少?SHL BL, 1 ;BL = _7CH____, CF = _1_____MOV CL, 2SHR BL, CL ; BL = __1FH___, CF = _0_____OR BL, 80SAR BL, 1 ; BL = __2FH___, CF = ___1___ROR BL,CL ; BL = _CBH____, CF = ___1___INC CLRCL BL, CL BL = __5FH___, CF = _0_____3)什么是短跳转、近跳转、远跳转?4)若当前SP = 1000H,CS = B000H ,IP = 0100H,且当前FLAG = 2345H,则执行指令INT 21H以后,SP的值变为多少?堆栈段中6个存储单元0FFFH、0FFEH、0FFDH、0FFCH、0FFBH、0FFAH的值分别是多少?7. 请写出程序段实现下列功能例如:从160H端口读取1个字节MOV DX, 160HIN AL, DX1)将一个8位数20H写入到地址为20H的端口;2)若AL = 56H,BL = 57H,将这两个压缩格式BCD码相加并将结果保存到存储单元[2000H]中;3)求数据段偏移地址为1000H开始的一个字符串的长度,字符串以ASCII码0为结束符,长度要求包括结束符;(提示:初始化AL = 0CX = 0FFFFH,然后使用REPNZ SCASB命令,最后根据CX的值计算字符串长度)8. 请判断以下8086汇编指令是否正确,正确则在指令前打√,错误则打×( ) 1) MOV DS, 1000H ( ) 18) LEA [1000H], MSG( ) 2) MOV DX, 1000H ( ) 19) LDS ES, MSG( ) 3) MOV IP, AX ( ) 20) LES DX, MSG( ) 4) MOV [1000H], [SI] ( ) 21) ADD DS, 1000H( ) 5) PUSH [SI] ( ) 22) ADC DX, [DI]( ) 6) PUSH AL ( ) 23) SUB [BX], 1000H( ) 7) PUSH 200H ( ) 24) SUB [BX + BP], 1000H ( ) 8) POP CS ( ) 25) IMUL 100H( ) 9) POP AX ( ) 26) DIV word ptr 100H[BP] ( ) 10) XCHG AX, DS ( ) 27) AND BP, 1001H( ) 11) XCHG AX, 1000H[SI + DI] ( ) 28) SHL [BX], 1( ) 12) IN AX, [SI] ( ) 29) ROR AX, 4( ) 13) IN BL, 80H ( ) 30) RCL word ptr [BX], CL ( ) 14) IN AX, 160H ( ) 31) SAR dword ptr [BX], CL ( ) 15) IN AL, DX ( ) 32) MOVSW( ) 16) OUT AL, DX ( ) 33) REPNZ SCASB( ) 17) OUT 80H, AL ( ) 34) RETI。
《汇编语言程序设计》模拟试题

《汇编语言程序设计》模拟试题一、单项选择题1、指令JMP FAR PTR DONE属于()。
A.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址2、执行下面指令序列后,结果是()。
MOV AL,82HCBWA. AX=0FF82HB. AX=8082HC. AX=0082HD. AX=0F82H3、8088/8086存储器分段,每个段不超过()。
A.64K个字B.32K个字节C.1兆个字节D.64K个字节4、CPU发出的访问存储器的地址是()。
A.物理地址B.偏移地址C.逻辑地址D.段地址5、BUF DW 10H DUP(3 DUP(2,10H),3,5)上述语句汇编后,为变量BUF分配的存储单元字节数是()。
A.80HB.100HC.124D.1926、若AX= - 15要得到AX=15应执行的指令是()。
A.NEG AXB.NOT AXC.INC AXD.DEC AX7、8086/8088系统执行传送指令MOV时()。
A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志8、MOV AL,79ADD AL,0B1H上面指令执行后,设置的标志位CF和OF的值是()。
A.CF=0,OF=1B.CF=1,OF=1C.CF=0,OF=1D.CF=1,OF=09、检查BUF的内容是否为正偶数,如是正偶数,则AL=0。
下面程序段正确的是()。
A. MOV AL,BUFB. MOV AL,BUFJS K1 AND AL,11SHR AL,1 JNZ K2JNC K1 MOV AL,0MOV AL,0 K2:……K1:C. MOV AL,BUFD. MOV AL,BUFTEST AL,81H JNP K4JNZ K3 TEST AL,80HMOV AL,0 JNZ K4K3:MOV AL,0K4:10、下列指令中操作数在代码段中的是()。
A.MOV AL,42HB.ADD AL,BLC.SUB [BX],DID.INC [DI]11、与MOV BX,OFFSET VAR指令完全等效的指令是()。
微机原理与接口技术——基于8086和Proteus仿真 习题参考答案

第1章习题答案1.答:为了区别所使用的数制,一般用以下两种书写格式表示:①用括号将数字括起,后面加数制区分,数制用下标的形式给出;②用后缀区分,二进制数、十进制数、八进制数、十六进制数的后缀分别为字母B(或b)、D(或d)、O(或o)或Q(或q)、H(或h)。
例如:十六进制数可以表示成16或;十进制数可以表示成10或。
2.答:123D采用十进制,0AFH采用十六进制,77Q采用八进制,1001110B采用二进制。
3.答:字长为8位的二进制数原码表示的最大值:127,最小值:-127;补码表示的最大值:127,最小值:-128。
字长为16位的二进制数原码表示的最大值:32767,最小值:-32767;补码表示的最大值:32767,最小值:-32768。
4.答:(1)125D=0111 1101B=7DH(2) 255D=1111 1111B=FFH(3)72D=0100 1000B=48H(4)5090D=0001 0011 1110 0010B=13E2H5.答:(1)1111 0000B=240D=F0H(2) 1000 0000 B =128D =80H(3)1111 1111 B =255 D =FFH(4)0101 0101B=85D=55H6.答:(1)FFH=255D=1111 1111B(2) ABCDH=43947D=1010 1011 1100 1101B(3) 123H=291D=0000 0001 0010 0011B(4) FFFFH=65535D=1111 1111 1111 1111B7.答:(1)8位时(16)原=0001 0000 ; (16)补=0001 0000;16位时(16)原=0000 0000 0001 0000 ; (16)补=0000 0000 0001 0000;(2) 8位时(-16)原=1001 0000 ; (-16)补=1111 0000;16位时(-16)原=1000 0000 0001 0000 ; (-16)补=1111 1111 1111 0000;(3) 8位时(+0)原=0000 0000; (+0)补=0000 0000;16位时(+0)原=0000 0000 0000 0000; (+0)补=0000 0000 0000 0000;(4) 8位时(-0)原=1000 0000 ; (-0)补=0000 0000;16位时(-0)原=1000 0000 0000 0000; (-0)补=0000 0000 0000 0000;(5) 8位时(127)原=0111 1111; (127)补=0111 1111;16位时(127)原=0000 0000 0111 1111; (127)补=0000 0000 0111 1111;(6) 8位时-128超过原码表示的范围; (-128)补=1000 0000;16位时(-128)原=1000 0000 1000 0000; (-128)补=1111 1111 1000 0000;(7) 8位时(121)原=0111 1001 ; (121)补=0111 1001;16位时(121)原=0000 0000 0111 1001; (121)补=0000 0000 0111 1001;(8) 8位时(-9)原=1000 1001 ; (-9)补=1111 0111;16位时(-9)原=1000 0000 0000 1001; (-9)补=1111 1111 1111 0111;8.答:(1) [x]补=1100 0010;(2)[-x]补=0000 1101;(3)[x]原=1100 0010;(4)[x]反=1011 1101。
计算机等级考试(国家)-80x86微处理器与汇编语言程序设计模拟1

80x86微处理器与汇编语言程序设计模拟1一、选择题1、下列______不是80386所具有的特点。
A. 保护虚地址存储方式,扩充了通用寄存器的功能B. 32位的运算能力C. 程序中可同时使用四个数据段D. 采用了PCI标准的局部总线2、在普通的微处理芯片中,主要有CISC和RISC两种不同的体系结构。
80386的体系结构为______。
A. CISC结构B. 融合了CISC结构和RISC结构C. RISC结构D. 不具有上述两种结构3、下述______不是奔腾处理器Pentium与80386相比所具有的新特点。
A. 错误检测及功能冗余校验技术B. 增强的64位数据总线C. 保护虚地址存储方式,扩充了通用寄存器的功能D. 采用了PCI标准的局部总线4、Pentium4微处理器进行存储操作时,在时钟周期T1期间,完成______操作。
A. W/R信号变为高电平B. 发送存储器地址C. 读操作码D. 读操作数5、Pentium微处理器的内部数据总线宽度是______。
A. 16位B. 32位C. 36位D. 64位6、Pentium微处理器中共有几个段寄存器?______。
A. 4个B. 5个C. 6个D. 7个7、Pendum4微处理器可寻址的最大存储空间是______。
A. 256MBB. 4GBC. 64GBD. 64TB8、假设Pentium微处理器的段描述符中基地址是00280000H,段的界限是00010H,粒度G=1,则该描述符所寻址的结束地址是______。
A. 00280010HB. 00290000HC. 0028000FHD. 00370000H9、执行下列指令后,(CL)=______。
STR1 DW 'AB'STR2 DB 16DUP(?)CNT EQU $-STR1MOV CX,CNTMOV AX,STR1HLTA. 10HB. 0EHC. 12HD. 0FH10、上题执行后(AX)=______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8086程序设计仿真练习题
1、数组STRAING中存放着多个8位有符号数,以“$”结束,要求
分成正数组和负数组分别存放,并统计两个数组的个数,分别存于正、负数组的第一个字节。
2、将数据块DAT1中的20个单字节数,复制到DAT2中,并从
中检索与2EH相同的数,将此单元的数换成空格符。
如有多个与2EH相同的数,要求统计出个数,存在寄存器DL中。
3、将变量VAR1中的16位二进制数取反,并统计原数中1的个数,
将个数存在变量VAR2中。
4、找出数据块DAT1中的15个8位有符号数中,最大的偶数和最
小的奇数,分别存在变量MAX和MIN中。
5、将变量VAR1中的16位二进制数,变成4个ASCⅡ码,存在VAR2
开始的4内存单元中。
6、将数据块DAT1中的多个8位有符号数,数据块以0结尾(数据块不包括0),按照从小到大的顺序排列,
7、内存单元X 中有一个8位有符号数,按下式计算Y 值,并将Y 值存于其后的单元(注意数据的大小)。
编写完整的汇编语言程序。
⎪⎩
⎪⎨⎧>-=<+=0305000252x x x x x y
8、数组BUF1中有10个BCD 码,求出其累加和及平均值,分别存在变量SUM 和A VER 中。
9、数据块X 中有8个8位无符号数,分别为记为X1、X2、….. X8, 试计算Y=X1+X2+X3-X4-X5+X6-X7+X8的值,并存在内存中。
10、利用调用子程序的方法,将不大于9999的一个16位二进制数转换成十进制数,以组合BCD 码的形式存在2个内存单元中。