8086程序设计仿真练习题
模拟题带答案_汇编语言
一、填空题(每空2分,总30分)1、8086CPU由_段__地址和偏移地址得到__20__位的物理地址。
2、8086CPU有_8__个8位寄存器,_bx___、_si_、_di__、_bp___寄存器可以用来存放内存寻址时的偏移地址。
__ss__为堆栈段寄存器,__sp__寄存器为栈顶指针。
3、数值1234H存放在物理地址为4的字单元中,则物理地址4存储单元内容是_34H__,物理地址5存储单元内容是_12H___。
4、PSW状态标志寄存器ZF为__零__标志,当____运算结果为0时,ZF标志为1。
5、在堆栈操作中,如果10000H-1000FH为堆栈空间,则SS=____1000H,SP= ____0010H。
二、选择题(每题5分,总30分)1、下面堆栈指针寄存器是(B)A.IP B.SP C.BP D.PSW2、正确的指令是(B)。
A. ADD AX, [AX]B. MOV AX, [BX]C. MOV AX, [CX]D. MOV AX, [DX]3、下列属于合法的指令是( D )。
A. MOV DS,ES B.MOV CS,AXC. MOV AX,BLD. MOV AX,CS4、现有如下数据段:DA TA SEGMENTX1 DB 500 DUP(0,1)X3 DD ?DATA ENDS则X3-X1的值为(B)A. 500B. 1000C. 2D. 15、当执行指令ADD AX,BX后,若AX的内容为2BA0H,奇偶标志位PF=1,下面的叙述正确的是(A)A.表示结果中含1的个数为偶数B.表示结果中含1的个数为奇数C.表示该数为偶数D.表示该数为奇数6、RETF指令可描述为(C)。
A. POP IPB. POP CSC. 先A后BD. 先B后A三、判断题(对的填√,错的填×,共10分)1.ADD AH,1234H (×)2.MOV [DI],[SI] (×)3.ADD 1234H,AX (×)4.MOV CS, AX (×)5.MOV BX,AX (√)6.PUSH AL (×)7.POP CS (×)8.MOV CX,[AX] (×)9.MOV DS,1000H (×)10.CMP SS,AX (×)四、程序填空(每空2分,共10分)补全下面的程序,它的功能是利用堆栈实现数据逆序存放。
第4章 8086汇编语言程序格式习题
第4章汇编语言程序格式习题练习题1 单项选择题1.下列选项中不能作为名字项的是()。
A.FH B.A3 C.3B D.FA DC2.下列指令不正确的是()。
A.MOV A L,123 B.MOV A L,123QC.MOV A L,123D D.MOV AL,123H3.下列指令不正确的是()。
A.MOV BL,OFFSET A B.LEA BX,AC.MOV BX,OFFSET A D.MOV BX,A4.若定义“BUF DB 1,2,3,4”,执行MOV A L,TYPE BUF 后A L=()。
A.0 B.1 C.2 D.35.若定义“A EQU 100”,执行“MOV AX,A”后,AX=()。
A.A的偏移地址B.A单元中的内容C.100 D.A的段地址6.若定义“B DW 1,2,10 DUP(0)”,则该伪指令分配()字节单元。
A.10 B.20 C.22 D.247.若定义“C DD 2,4”,则该伪指令分配()个字节单元。
A.2 B.4 C.6 D.88、伪指令是()规定的汇编说明符,它在源程序汇编时进行说明。
A、DEBUGB、LINKC、MASMD、EDIT9.在上机操作过程中,MASM命令执行后,除了生成一个目标文件外,根据选择还可以生成一个()文件。
A..LST B..EXE C..MAP D..ASM10.LINK命令执行后可以生成一个以()为扩展名的文件。
A.ASM B.EXE C.OBJ D.COM11.一个段最大可定义()字节。
A.1M B.64K C.32K D.16K12.若要求一个段的起始位置能被256整除的单元开始,在定位方式选项中应选()。
A.BYTE B.WORD C.PA RA D.PA GE13.宏指令与子程序相比,在多次调用时,宏指令调用的目标程序长度比子程序调用的()。
A.相同B.长C.短D.不定14.宏指令与子程序相比,子程序调用的执行速度比宏指令的()。
《微机原理》第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
完整word版,MCS_8086习题7_答案(部分)
习题7答案1.请编写完整8086汇编语言程序统计0801~0803班计算机原理考试成绩:●假设成绩存放在数据段0000H开始的85个字节单元中;●将成绩从高到低进行排序;●统计最高成绩和最低成绩,分别存放在字节变量max和min单元中;●统计不及格人数,存放在字节变量var1中;●统计90~99分人数,存放在字节变量var2中;●计算85人平均成绩,存放在字节变量avg中;data segment paraorg 0056Hmax db 0min db 0var1 db 0var2 db 0avg db 0sum dw 0cnt equ 85data endsss_seg segment stackdw 100 dup(0)ss_seg endscode segment paraassume cs:code, ds:data, ss:ss_segmain proc farmov ax, datamov ds, axmov cx, cnt-1circle1: ; sort the scorepush cxmov bx, 0mov dx, 0circle2:mov al, [bx]cmp al, [bx + 1]jae nextxchg al, [bx + 1]mov [bx], almov dx, 1next:inc bxloop circle2pop cxcmp dx, 1jz main1loop circle1main1:mov max, [0000H] ; get the maxmov max, [0054H] ; get the minmov cx, cnt ; calculate var1, var2 and avgmov bx, 0circle3: mov al, [bx]mov ah, 0add sum, ax ; get the sum of scorecmp al, 90jae main2cmp al, 60jb main3jmp main4main2: inc var2 ; 90~99 numberjmp main4main3: inc var1 ; < 60 numbermain4: inc bxloop circle3mov dl, cntmov ax, sumdiv dlmov avg, al ; get the average scoremov ax, 4c00hint 21h ; return OSmain endpcode endsend main2 如图6-1所示,以IBM-PC/XT计算机为核心构成的炉温控制系统。
程序设计仿真练习题
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。
微机原理与接口技术——基于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)=______。
《计算机组成原理》第二章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组成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顺序执行如下指令,要求填写每条指令执行后的有关结果。
《汇编语言程序设计》模拟试卷1
《汇编语言程序设计》模拟试卷 1一、选择题:1、使计算机执行某种操作的命令是________。
A.伪指令B.指令C.标号D.助记符2、在下列程序段中,要想找到第一个空格符(20H),须填入的指令或指令前缀是______。
CLDMOV DI,OFFSET STRINGMOV AL,20HMOV CX,LENGTH__________SCACBA.LOOPE B.REPNE C.LOOPNZ D.REPZ3、8086/8088微处理器中,既可作为16位寄存器也可以分为两个8位寄存器用的寄存器是________。
A.AX、BX、CX、DX B.BP、SP、SI、DIC.CS、DS、SS、ES D.AX、BX、SI、DI4、不是指针寄存器的是________。
A.SP B.BP C.IP D.FLAGS5、BUF DW 10H DUP(3 DUP(2,10H),3,5)上述语句汇编后,为变量BUF分配的存储单元字节数是________。
A、80HB、100HC、124D、1926、存储单元有唯一的物理地址,但可用不同的段地址和偏移地址表示。
若存储单元的物理地址为88D52H,则下面的表示________是对的。
A.8561H:3742H B.8561H:752H C.85610H:3742H D.3752H:85610H7、DEC BYTE PTR[DI]指令中的操作数的数据类型是________。
A. 双字B.字C.字节D.四字8、已知AL存放一数据,要检测其第2位是否为0,应执行指令________。
A.TEST AL,04H B.CMP AL,04H C.AND AL,08H D.XOR AL,04H9、将数据5618H存放在存储单元中的伪指令是________。
A. DATA1 DW 1856HB. DATA1 DB 18H,56HC. DATA1 EQU 5618HD. DATA1 DB 18H,00H,56H,00H10、MOV SP,3210HPUSH AX执行上述指令序列后,SP寄存器的值是________。
华南农业大学汇编语言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.掌握汇编语言源程序结构。
《汇编语言程序设计(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、为了便于实现多级中断,保存现场信息最有效的方式是采用( )。
《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仿真 习题参考答案
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,
MCS_8086习题4
W708870习题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码转换为二进制数。
微机原理与接口技术——基于8086和Proteus仿真 习题参考答案
EA)。段地址和偏移地址都是是 16 位无符号二进制数。 (2)答:
时钟周期:计算机的“时钟”是由振荡源产生的、幅度和周期不变的节拍脉冲,每个脉 冲周期称为时钟周期,又称为 T 状态或 T 周期,时钟周期是微机系统工作的最小时间单元。
3.答: 地址信号是 CPU 发送给内存或 I/O 设备的,所以地址线是单向的; 数据信号可以从 CPU 发送给内存或 I/O 设备,也可以从内存或 I/O 设备发送给 CPU,故
而数据线是双向的。
4.答: 8086CPU 中有 14 个寄存器。它们是:4 个 16 位的通用寄存器:AX、BX、CX、DX 和 8 个
(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;
6.答: 8086CPU 可寻址的存储器地址范围是 00000H~FFFFFH; 可寻址的 I/O 端口地址范围是 0000H~FFFFH。
7.答: 由于 8086CPU 提供 20 位地址,但 8086 中可用来存放地址的寄存器,如 IP、SP、BX、
SI 等都是 16 位的,只能直接寻址 64KB。为了寻址 1MB 存储空间,8086CPU 采用了典型的存 储器分段技术,即将整个存储器空间分为许多逻辑段,每个逻辑段的容量小于或等于 64KB。 分段后,对存储器的寻址操作不再直接用 20 位的物理地址,而是采用段地址加段内偏移地 址的二级寻址方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8086程序设计仿真练习题1、数组STRAING中存放着多个8位有符号数,以“$”结束,要求分成正数组和负数组分别存放,并统计两个数组的个数,分别存于正、负数组的第一个字节。
DATA SEGMENTDA1 DB 25H,0BDH,7FH,94H,65H,88H,12H,58H,99H,0A5H,99H,23H,0FBH,0AAH,098H,66H,'$'DA2 DB LENGTH DA1 DUP(?) ;正数DA3 DB LENGTH DA1 DUP(?) ;负数DATA ENDSCODE SEGMENTASSUME CS:CODE, DS: DATA,ES:DATASTART: MOV AX , DATAMOV DS, AXMOV ES, AXLEA SI, DA1LEA DI, DA2INC DILEA BX, DA3INC BXXOR DX,DXLOP1: LODSBCMP AL, '$'JZ NUMTEST AL,80HJNZ LOP2STOSBINC DLJMP LOP1LOP2: XCHG BX, DISTOSBINC DHXCHG BX,DIJMP LOP1NUM: LEA DI, DA2MOV [DI], DLLEA BX, DA3MOV [BX], DHHLTCODE ENDSEND START2、将数据块DAT1中的20个单字节数,复制到DAT2中,并从中检索与2EH相同的数,将此单元的数换成空格符。
如有多个与2EH相同的数,要求统计出个数,存在寄存器DL中。
DATA SEGMENTDAT1 DB 25H,0BDH,7FH,94H,2EH,65H,88H,12H,2EH,99H,0A5H,98H,2EH,23H,0FBH,0AAH,96H,66H,0CCH,08HDAT2 DB 20 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS: DATA,ES:DATASTART: MOV AX, DATAMOV DS, AXMOV ES, AXMOV CX, 20MOV DX, 0MOV BX,0LEA SI, DAT1LEA DI, DAT2CLDLP1: LODSBCMP CX, 0JZ LP2STOSBDEC CXJMP LP1LP2: CMP BX,20JZ OVERCMP DAT2[BX],2EHJZ LP3INC BXJMP LP2LP3: MOV DAT2[BX],' 'INC BXINC DLJMP LP2OVER: HLTCODE ENDSEND START3、将变量VAR1中的16位二进制数取反,并统计原数中1的个数,将个数存在变量VAR2中。
DATA SEGMENTVAR1 DW 1107HVAR2 DB 1 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,VAR1NOT AXMOV VAR1,AXXOR DL,DLMOV CX,16P1: ROL AX, 1JC P2INC DLMOV VAR2,DLP2: LOOP P1HLTCODE ENDSEND START4、找出数据块DAT1中的15个8位有符号数中,最大的偶数和最小的奇数,分别存在变量MAX和MIN中。
DA TA SEGMENTDA T1 DB 12H,86H,53H,76H,66H,96H,09H,25H,37H,48H,06H,88H,0FFH,0ABH,0DDH,5 DUP(0)MAX DB 1 DUP(0)MIN DB 1 DUP(0)DA TA ENDSCODE SEGMENTASSUME CS: CODE, DS:DATA ,SS:STACKSTART: MOV AX, DATAMOV DS, AXMOV BX, 0MOV CX, 15DEC CX ;内循环LOP1: MOV DX, CX ;外循环LOP2: MOV AL, DA T1[BX]CMP AL, DA T1[BX+1]JL LP1XCHG AL, DA T1[BX+1]MOV DAT1[BX], ALLP1: ADD BX,1LOOP LOP2MOV CX,DXMOV BX,0LOOP LOP1MOV DI,14M1: TEST DAT1[DI],01HJNZ MMAXMOV AH,DA T1[DI]MOV DI,0JMP M2MMAX: DEC DIJMP M1M2: TEST DAT1[DI],01HJZ MMINMOV AL,DA T1[DI]JMP MMMMIN: INC DIJMP M2MM: MOV MAX,AHMOV MIN,ALHLTCODE ENDSEND START5、将变量VAR1中的16位二进制数,变成4个ASCⅡ码,存在VAR2开始的4内存单元中。
DATA SEGMENTVAR1 DW 110AHVAR2 DB 4 DUP('')DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,VAR1MOV BX,0LP1: MOV AX,DXAND AX,000FHCMP AL,0AHJB LP2ADD AL,07HLP2: ADD AL,30HMOV VAR2[BX],ALINC BXMOV CX,4SHR DX,CLCMP BX,4JZ OVERJMP LP1OVER: HLTCODE ENDSEND START6、将数据块DAT1中的多个8位有符号数,数据块以0结尾(数据块不包括0),按照从小到大的顺序排列,DA TA SEGMENTDA T1 DB 12H,84H,53H,76H,66H,99H,09H,25H,37H,48H,0,88HDA TA ENDSCODE SEGMENTASSUME CS: CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DI, 0NUM1: CMP DA T1[DI],0JZ LOP0INC DIJMP NUM1LOP0: MOV BX, 0MOV CX, DIDEC CX ;内循环LOP1: MOV DX, CX ;外循环LOP2: MOV AL, DA T1[BX]CMP AL, DA T1[BX+1]JL LP1XCHG AL, DA T1[BX+1]MOV DAT1[BX], ALLP1: ADD BX,1LOOP LOP2MOV CX,DXMOV BX,0LOOP LOP1HLTCODE ENDSEND START7、内存单元X 中有一个8位有符号数,按下式计算Y 值,并将Y 值存于其后的单元(注意数据的大小)。
编写完整的汇编语言程序。
⎪⎩⎪⎨⎧>-=<+=0305000252x x x x x y DATA SEGMENTX DB 81HY DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,XMOV AH,0CMP X,0JL LOP1JG LOP3JMP LOP4LOP1: CMP AL,0F4H ;AL的数与-12比较JL LOP2SHL AX,1ADD AX,25MOV AH,0JMP LOP4LOP2: SHL AX,1ADD AX,25MOV AH,0FFHJMP LOP4LOP3: MOV BX,AXMOV CL,2SHL BX,CLADD AX,BXSUB AX,30LOP4: MOV Y,AXHLTCODE ENDSEND START8、数组BUF1中有10个BCD码,求出其累加和及平均值,分别存在变量SUM 和A VER中。
DATA SEGMENTBUF1 DB 37H,22H,08H,06H,66H,99H,88H,09H,13H,92HSUM DW 2 DUP(?)A VER DB 1 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS : DATABEGIN: MOV AX,DATAMOV DS,AXLEA BX, BUF1LEA DI, SUMLEA SI, A VERMOV CX, 10XOR AX, AXLP1: ADD AL, [BX]DAAJNC M1INC AHM1: INC BXLOOP LP1MOV [DI], ALMOV [DI+1] ,AHMOV BX, 10HDIV BXMOV [SI], AXHLTCODE ENDSEND BEGIN9、数据块X中有8个8位无符号数,分别为记为X1、X2、….. X8, 试计算Y=X1+X2+X3-X4-X5+X6-X7+X8的值,并存在内存中。
DATA SEGMENTX DB 0A5H,0BDH,7FH,69H,2EH,65H,99H,12HY DB 2 DUP('')DATA ENDSCODE SEGMENTASSUME CS:CODE, DS: DATASTART: MOV AX, DATAMOV DS, AXMOV AX,0MOV AL,X[0]ADD AL,X[1]ADC AH,0ADD AL,X[2]ADC AH,0SUB AL,X[3]SBB AH,0SUB AL,X[4]SBB AH,0ADD AL,X[5]ADC AH,0SUB AL,X[6]SBB AH,0ADD AL,X[7]ADC AH,0MOV Y[0],ALMOV Y[1],AHHLTCODE ENDSEND START。