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章 习题

《微机原理》第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汇编语言程序设计试卷

(完整版)华中科技大学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

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仿真 习题参考答案

微机原理与接口技术——基于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

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)=______。

《计算机组成原理》第二章8086CPU练习题及答案

《计算机组成原理》第二章8086CPU练习题及答案

《计算机组成原理》第二章8086CPU练习题及答案选择题目:1. 运算器的主要功能是进行( C )。

A. 逻辑运算B. 算术运算C. 逻辑运算和算术运算D. 以上均不正确2. 下面寄存器为8位的是( B )A. IPB. AHC. SPD. DX3. 下列寄存器中,只能按位进行访问的是(B )。

A. AXB. FLAGC. CXD.BP4 CPU内部的指令指针寄存器IP的作用是( C )A. 用于存放某特定程序的地址指针B. 由于存放某条指令的地址C. 用于存放下一条要执行指令的偏移地址D. 用于存放下一条要执行指令的段地址5. 在补码运算时,如果运算结果为负,则下列标志位一定为1的是(A )A. SFB. ZFC. CFD. PF6. 8086CPU可寻址的最大内存空间为(B )A. 64KBB. 1MBC. 4MBD. 64MB7. 8086CPU中,可用于对内存单元进行间接寻址的寄存器有(B )个。

A. 2C. 6D. 88. 标志寄存器中可用于指令测试的状态为包括( D )。

A. CF、ZF、DF和PFB. CF、ZF、DF和OFC. CF、ZF、OF和PFD. CF、ZF、DF和IF9. 用来表示堆栈指针的寄存器是(D )A. IPB. BPC. SPD. SS10. 存储器物理地址形成规则是(B )A. 段地址+偏移地址B. 段地址左移4位+偏移地址C. 段地址×10+偏移地址D. 段地址×16H+偏移地址11. 关于8086微机系统中的存储器分段管理,下面说法正确的是(C )。

A. 各逻辑段的起始地址被称为该段的段地址B. 各逻辑段起始地址的低16位被称为该段的段地址C. 各逻辑段的起始地址必须能被16整除D. 各逻辑段之间相互独立,不能重叠。

12. 某存储存储单元的逻辑地址为1200H:0100H,下列说法中错误的是( D )。

A. 该存储单元的段地址是1200HB. 该存储单元的偏移地址是0100HC. 该存储单元的物理地址是12100HD. 该存储单元的物理地址是1300H13. 8086CPU地址总线和可寻址的存储空间分别为(A )。

8086练习题

8086练习题

8086练习题第四章 8086组成1. 简述8086CPU 中EU 和BIU 的组成。

2. Intel8086标志寄存器中的CF ,ZF ,SF ,OF ,IF 各是什么标志?3.什么是总线?根据传输信息作用的不同,微机系统总线可分为哪几类? 4.Intel8086有多少根地址线?有多少根数据线? 5.什么是地址锁存器?8086系统中为什么要用地址锁存器?锁存的是什么信息? 6. 什么是物理地址?什么是逻辑地址?8086的20位地址加法器有何作用?7. 试绘出用一个双向三态门驱动Intel8086数据信号D 0的电路图。

8. 什么是可屏蔽中断?什么是非屏蔽中断?什么是中断向量?什么是中断向量表?9. Intel8086如何响应非屏蔽中断?10. 什么叫总线周期?Intel8086的一个总线周期包括多少个时钟周期?什么情况下要插入T W ?插入多少个T W 取决于什么因素?11. 简述Intel8086总线读操作的过程。

12. 简述Intel8086总线写操作的过程。

13. ALU 是什么部件?它能完成什么运算功能?试画出其符号14. ROM 和RAM 各有何特点和用处?15. 三态输出电路有何意义?其符号如何画?16. 写出8086CPU 下列引脚的作用:M/I O ———, INTR ,INTA —————,NMI ,DT/R —,DEN ,W R ———— ,R D ————,CLK ,READY ,RESET ,ALE 第五章 8086指令一、简述下列指令所对应的操作(1) MOVAL,99H (2)MOV AH,AL (3)MOV AX,[BX+1000H] (4)MOV BH,[BP+SI] (5) XCHG AL,BL(6) XLA T (7) PUSH SI(8) POP DI(9) ADD AX,[200H](10) ADCAL,0(11)INC BX(12)DEC DX(13)SUB AX,BX(14)SBB AH,AL(15)NEG AX(16)SAR AL,CL(17)SHL AL,1(18)RCR AH,1(19)ROL AL,CL(20)TEST AH,80H(21)AND AL,8AH(22)XOR AX,AX(23)NOT AL(24)OR AL,DL(25)CALL 200H(26)STC(27)STI(28)CLI(29)CLC(30)NOP(31)HLT(32)INT 1CH(33)RET(34)RETI(35)JMP ABC(36)LOOP ABC(37)JNZ ABC(38)JC ABC(39)CMP AX,BX(40)JNC ABC二、填空MOV AX,1000H; AH=? AL=? AX=?MOV DS,AX; DS=?MOV AL,23H; AL=? AX=?MOV [200H],AX; (1000:0200)=? (1000:0201)=?MOV BX,200H; BX=?MOV DI,[BX]; DI=?MOV [202H],BH; (1000:0202)=?MOV SI,[BX+1]; SI=?MOV BH,[BX]; BH=?三、填空已知存储器中的数据如下(本题数据为HEX格式):0C1A:0500 05 C6 06 15 98 02 05 2D-01 3A C3 75 05 80 CF 80 寄存器SP=FFEE顺序执行如下指令,要求填写每条指令执行后的有关结果。

MCS_8086习题4

MCS_8086习题4

习题4:1. 从屏幕上输入大写字母,转换为小写字母并输出(生成.com文件)要求:程序具有可读性、容错性2. 编写一子程序asc2bin,将ASCII转换为二进制数要求:输入参数:AL中存放需要转换的ASCII输出参数:AL中存放转换后的二进制数并返回3. 内存中存放8个16位有符号数,求8个数值之和,并将结果存放在内存变量SUM中注:程序中应用到字扩展为双字的指令CWD4. 内存中存放8个8位有符号数,请按从大到小顺序排列5. 内存中有8个16位数,请编写程序将8个数倒序排放例:定义内存中8个数buf dw 100, 3, 1, 20, 40, -2, 7, 10 程序运行后,buf开始应为:buf dw 10, 7, -2, 40, 20, 1, 3, 100 6. 从键盘输入4位十进制数,然后以16进制形式显示在屏幕上.例:键盘输入:1024 屏幕上应显示:0400H要求:键盘输入和显示结果时均应有提示7. 数据段从100H开始存放字符串str1,从200H开始存放str2,二者均以NULL字符为结束符,编写程序将str2拷贝到str1末尾,形成一个完整字符串例:ORG 100Hstr1 db 0dh, 0ah, ‘Hello ’, 0ORG 200Hstr2 db ‘Automation!’, 0程序运行后结果应为:str1 db 0dh, 0ah, ‘Hello Automation!’, 08. 以10进制形式显示内存中一有符号字节数据例:var db 0ffH屏幕应显示:The result is: -19. 将一个16位的无符号数var, 转换为非压缩格式BCD码,存放在内存中buf开始的单元中。

(按高位在前、低位在后的顺序存放)选作题:10. 内存中从str开始存放一字符串,结束符为NULL字符,请编写程序统计该字符串中单词的个数例:str1 db 0dh, 0ah, ‘Hello world, welcome to DUT. CPU is central processing unit!’, 0h统计’….’中的单词个数,结果为1011. 编写程序用键盘1~7键,模拟7个音符,进行键盘演奏!注:需要对8253的定时器2和8255的PB口进行初始化12. 将一个8位压缩BCD码转换为二进制数。

《汇编语言程序设计(1)》模拟试题一和答案

《汇编语言程序设计(1)》模拟试题一和答案

《汇编语言程序设计(1)》模拟试题一一、单项选择题(本大题共20个小题,每小题2分,共计40分)1、为了便于实现多级中断,保存现场信息最有效的方式是采用( )。

A、通用寄存器B、堆栈C、存储器D、寄存器2、8086CPU中有4个数据寄存器,其中AX除用作通用寄存器外,还可用作( )。

A、累加器B、计数器C、基址寄存器D、段寄存器3、如果(AL)=11111111B,执行INC AL指令后,CF= ( )。

A、1B、0C、2D、和执行INC AL指令之前的取值保持一致4、以下指令中,执行后要影响标志位的指令为( )。

A、MOV AL,BLB、LAHFC、CLCD、PUSHF5、在机器内部操作中,CPU与存储器之间的任何信息交换使用的都是( )。

A、逻辑地址B、物理地址C、有效地址D、相对地址6、用来表示堆栈指针的寄存器是( )。

A、IPB、BPC、SPD、SS7、8086CPU在基址加变址的寻址方式中,变址寄存器可以为()。

A、BX或CXB、CX或SIC、DX或SID、SI或DI8、如果当前(SP)=0058H,执行POP AX指令后,(SP)=( )。

A、60HB、56HC、59HD、5AH9、设DS=27FCH,某一数据存储单元的偏移地址为8640H,则数据存储单元的物理地址正确的是( )。

A、27FCHB、27FC0HC、8640HD、30600H10、PSW寄存器中共有( )位条件状态位,有( )位控制状态位。

A、6、3B、3、6C、8、4D、4、811、“与非”门中的某一个输入值为“0”,那么它的输出值( )。

A、为“0”B、为“1”C、取决于正逻辑还是负逻辑D、取决于其他输入端的值12、在段内寻址时,可以提供偏移地址的寄存器组是( )。

A、AX、BX、CX、DXB、BP、SS、IP、SIC、BX、BP、SI、DID、CS、DS、ES、SS13、为了便于实现多级中断,保存现场信息最有效的方式是采用( )。

华南农业大学汇编语言8086习题(附答案)

华南农业大学汇编语言8086习题(附答案)

题目名称实验一汇编语言程序结构题目关键字源程序结构 debug题目录入时间2013-3-13 22:45:26题目内容一、实验目的1.掌握汇编语言程序上机过程。

2.掌握汇编语言结构。

3.了解汇编程序、连接程序、DOS系统装入和返回功能。

4.掌握用DEBUG调试汇编语言程序的方法二、实验要求1. 编写完整的汇编语言程序:(1)逆序输出字符串“BASED ADDRESSING”。

(2)从键盘上输入2个一位的正数,求出它们的和(假设和不超过1 位)。

(3)试编写一段程序,要求在长度为100H字节的数组中,找出大于42H 的无符号数的个数并存入字单元UP中;找出小于42H的无符号数的个数并存入字单元DOWN中。

2.在DEBUG下查看程序执行的过程,以及变量值的变化。

3.演示程序运行结果,请指导教师检查。

三、思考1.汇编语言程序中语句END后的标号作用是什么?2.采用标准序结构编制源程序,用ret结束程序运行返回操作系统时,可否将语句main proc far中的far属性去掉,为什么?3.一个段的大小为多少?一定是64KB吗?如何在DEBUG下查看程序在内存的存放情况?四、提交内容将各个源程序代码、exe文件压缩为RAR后提交到作业系统。

题目创建人题目注释DA TAS SEGMENTString db "BASED ADDRESSING"count dw $-StringDA TAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TAS,SS:STACKS START:MOV AX,DATASMOV DS,AXmov cx,count ;循环次数lea si,count-1 ;将最后一个字符‘G’的地址给si L:mov ah,2mov dl,[si]dec siint 21hloop LMOV AH,4CHINT 21HCODES ENDSEND START1.2.asmDA TAS SEGMENTx db "x=$"y db "y=$"z db "x+y=$"DA TAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TAS,SS:STACKS START:MOV AX,DATASMOV DS,AXmov ah,9 ;显示"x="lea dx,xint 21hmov ah,1 ;输入Xint 21hsub al,30hmov cl,al ;将X放在CLmov ah,9 ;显示"y="lea dx,yint 21hmov ah,1 ;输入Yint 21hsub al,30hadd cl,al ;两数字相加mov ah,9 ;显示"z="lea dx,zint 21hmov ah,2 ;显示结果mov dl,cladd dl,30hint 21hMOV AH,4CHINT 21HCODES ENDSEND START1.3.asmDA TAS SEGMENTarray db 128 dup(41h,43h)up dw 0down dw 0DA TAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TAS,SS:STACKS START:MOV AX,DATASMOV DS,AXlea di,arraymov cx,256L:mov al,[di]cmp al,42hjl L1ja L2L1:inc downjmp L3L2:inc upjmp L3L3:inc diloop LMOV AH,4CHINT 21HCODES ENDSEND START题目名称实验二程序结构与简单程序设计题目关键字简单程序设计题目录入时间2013-4-1 22:45:55题目内容一、实验目的1.掌握汇编语言源程序结构。

8086指令系统测试题

8086指令系统测试题

8086指令系统测试题
说明:8086的指令系统测试题共有85条指令,测试的目的是让学生熟记指令且能运用指令完成指定任务,为第四章的程序设计打下基础。

最后,对本章中的寻址方式进行测试和考查。

一、请在每个括号内填入一条适当的指令,使之能完成该括号前的题目所指定的任务。

(1空1分)
二、寻址方式测试,请指出下列指令中,源操作数的寻址方式,答案请写入括号中。

(每题2分)
1.MOV AX, 100H ;()
2.MOV AX, [100H] ;()
3.MOV AX, V AL ; ()(说明:V AL是符号地址)
4.MOV AX, BX ;()
5.MOV AX, [BX] ;()
6.MOV AX, [BX+10H] ;()
7.MOV AX, [BX][SI] ;()
8.MOV AX, [BX][SI]COUNT ;()(说明:COUNT是个偏移量)
9.IN AX, 0FFH ;()
10.IN AL,DX ;()。

《80x86汇编语言程序设计》(第2版)习题答案

《80x86汇编语言程序设计》(第2版)习题答案

习题参考答案1第1章1-1汇编的主要功能:输入:汇编语言源文件输出:目标文件处理:对源文件进行语法检查;将符号指令翻译为机器指令。

连接的主要功能:输入:1个或多个目标文件与库文件输出:可执行文件处理:浮动地址的重定位;多模块的连接。

1-2 (1)2EH (2)0D2H (3)0FFH(4)80H (5)7FH (6)0FEH1-3 (1)7FH (2)0FF80H (3)0FFFFH285286(4)0FFD2H (5)8000H (6)0FFH1-4 无符号数范围:0~2n-1;带符号数范围:-2n−1~2n−1-11-5 (1)压缩BCD码:58H;非压缩BCD码:x5x8H。

(2)压缩BCD码:1624H;非压缩BCD码:x1x6x2x4H。

1-6 (1)字符'1'的ASCII码;十进制数31的压缩BCD码;十进制数1的非压缩BCD码;十进制数49的十六进制表示。

(2)十进制数-1的8位二进制补码表示;带符号数255的16位二进制补码表示;无符号数255的8位二进制形式。

(3)十进制数-1的16位二进制补码表示;带符号数65535的32位二进制补码表示;无符号数65535的16位二进制形式。

1-7 (1)作为无符号数为159,等值的16位和32位形式均为9FH;作为带符号数为-97,等值的16位和32位形式分别为0FF9FH与0FFFFFF9FH。

(2)作为无符号数和带符号数均为104,等值的16位和32位形式均为68H。

(3)作为无符号数为192,等值的16位和32位形式均为0C0H;作为带符号数为-64,等值的16位和32位形式分别为0FFC0H与0FFFFFFC0H。

1-8 (1)AND 0FH (2)OR 30H(3)右移4位可得高位的值;将原值AND 0FH可得低位的值。

(4)XOR 00101010B(5)AND 8000H,若结果为0,则是正数,否则为负数。

第2章2-1 系统总线是CPU与内存和I/O子系统之间进行数据交换的通道,包括数据总线、地址总线和控制总线,分别负责在CPU与内存和I/O子系统之间传送数据、地址和控制信息。

26616 微机原理与接口技术——基于8086和Proteus仿真 习题参考答案

26616 微机原理与接口技术——基于8086和Proteus仿真 习题参考答案
指令队列清空。
11.答: 8086 的 A19/S6~A16/S3 和 AD15~AD0 是复用信号,需要地址锁存器将地址信息保存起
来,为外接存储器或外设提供地址信息。 需要锁存的信号是:地址信号及信号。
12.答: 8086CPU 一个基本的总线周期包含 4 个时钟周期:T1、T2、T3 和 T4 。
6.答: 8086CPU 可寻址的存储器地址范围是 00000H~FFFFFH; 可寻址的 I/O 端口地址范围是 0000H~FFFFH。
7.答: 由于 8086CPU 提供 20 位地址,但 8086 中可用来存放地址的寄存器,如 IP、SP、BX、
SI 等都是 16 位的,只能直接寻址 64KB。为了寻址 1MB 存储空间,8086CPU 采用了典型的存 储器分段技术,即将整个存储器空间分为许多逻辑段,每个逻辑段的容量小于或等于 64KB。 分段后,对存储器的寻址操作不再直接用 20 位的物理地址,而是采用段地址加段内偏移地 址的二级寻址方式。
从偶地址读/写一个 字
AD7~AD0
从偶地址读/写一个 字节
AD15~AD8
从奇地址读/写一个 字节
AD15~AD8(第一个总线周期从奇字数据的低 8 位) 从奇地址读/写一个
AD7~AD0(第二个总线周期从偶地址单元读/写字 字
数据的高 8 位)
10.答: 8086 系统复位后,指令指针(IP)为 0000H;CS 寄存器为 FFFFH,其他寄存器为 0000H;
每个存储单元对应一个物理地址。8086 存储空间的物理地址范围是:00000H~FFFFFH。 逻辑地址:采用分段结构的存储器中,把通过段地址和偏移地址来表示的存储单元的地
址称为逻辑地址,记为:段地址:偏移地址。 段地址:8086 规定各逻辑段从节的整数边界开始,即段首地址二进制值的低 4 位是 0000,

微机道理演习题

微机道理演习题

三、判断题1. 在8086系统中,20位地址是在执行部件中形成的。

(×)2. 8086 CPU的最小方式是为实现多处理器系统而设计的。

(×)3. 在加减运算时,OF=1就表示结果有错。

( × )4. 两数相加,结果有偶数个"1",则PF=1。

( × )5. 当8086CPU复位后,(CS)=0000H,(IP)=0FFFFH,所以复位后系统从物理地址0FFFF0H开始执行程序。

(×)6.8086的每个存储单元地址既是字节地址又是字地址。

( √ )7. 同一个物理地址可以由不同的段地址和偏移量组合得到。

( √ )三、判断题1. 执行下列指令可以将00H送到端口地址为1A0H的外设上。

( × )MOV AL,00HMOV 1A0H ,AL2. 执行下列指令可以将其00H送到端口地址为2F8H的外设上:( √ )MOV AL,00HMOV DX,2F8HOUT DX,AL3. 8088的MOV指令不能进行两个存储器单元之间的数据直接传送。

( √ )4. 8088系统中,堆栈的存取可以以字或字节为单位。

( × )5. IN和OUT指令可寻址的口地址为64K个,端口地址只能用立即数。

( × )6. 判断下列指令是否正确(1) JMP BX (√) (9) PUSH SS (√)(2) IN AL,DX (√) (10) POP CS (×)(3) MOV DS,AX (√) (11) XCHG BX,IP (×)(4) SHL AX,2 (×) (12) MOV [BX],[1000] (×)(5) PUSH AL (×) (13) IN AL,N;(N>255) (×)(6) MOV ES,3F00H (×) (14) MOV [BX][DI],10 (√)(7) MOV [BX],[SI] (×) (15) IN BX,DX (×)(8) MOV AL,[BX+10H] (√) (16) MOV CS,AX (×)三、判断题1. 非屏蔽中断信号是一个由高到低的下降沿,这类中断不受中断允许标志位的影响,也不能用软件进行屏蔽。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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个内存单元中。

相关文档
最新文档