(微机原理和应用)编程题_试题集
- 格式:doc
- 大小:74.00 KB
- 文档页数:19
微机原理编程题1. 分支程序设计①.编写一段程序,已知BUF1单元中有一带符号字节数据X,BUF2中有一带符号字节数据Y,根据以下函数关系编写程序求Z的值,结果存入RESULT 单元。
Z=|X-Y|;DATA SEGMENTBUF1 DB 05HBUF2 DB 02HRESULT DB?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,BUF1MOV BL,BUF2SUB AL,BLJNC GREATNEG ALGREAT:MOV RESULT,ALEXIT: MOV AH,4CHINT 21HCODE ENDSEND START②.编写一段程序,已知BUF单元中有一无符号字节数据X,假设为8,根据以下函数关系编写程序求Y的值,结果存入RESULT 单元。
Z=5X X<10,X-5 X>=10;DATA SEGMENTBUF DB 8RESULT DB?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,BUFCMP AL,10JAE GREMOV BL,ALADD AL,ALADD AL,ALADD AL,BLJMP DONEGRE: SUB AL,5DONE: MOV RESULT,ALMOV AH,4CHINT 21HCODE ENDSEND START③.在内存单元BUF中存放一个带符号字节数据X,假定为-2,试根据以下函数关系编写程序求Y的值,结果存入RESULT 单元。
Y=1 X>0,0 X=0,-1 X<0;DATA SEGMENTBUF DB-2RESULT DB?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,BUFCMP AL,0JGE L1MOV AL,-1JMP L3L1:JZ L2MOV AL,1JMP L3L2:MOV AL,0L3:MOV RESULT,ALMOV AH,4CHINT 21HCODE ENDSEND START2. N个数中求最大值、最小值.假定N=10,已知原始数据存放在BUF开始的内存单元中,将结果存入MAX,MIN内存单元中。
微机原理试题1一、填空(每空1分,共10分)1. 01011101.101B = D =H=()BCD。
2.一个有16个字的数据区,它的起始地址为70A0:DDF6,那么该数据区的最后一个字的物理首地址为。
3.在IBM-PC/XT中,外设是通过器件对CPU产生中断请求。
这些中断的中断类型码为。
4.8088在访问4个当前段时,代码段、数据段及堆栈段的偏移量分别由、和提供。
5.在8088读存储器周期中,采样Ready线的目的是。
二、(8分)下列程序段的功能是完成S=(a*b+c)/a的运算,其中变量a,b ,c,和s均为带符号的字数据,结果的商存入s,余数则不计,请在下列空格中填入合适的指令(注:请按注释填空)。
MOV AX,aA*b在CX:BX中MOV AX,CC在DX:AX中a*b+c在DX:AX中商存入S三.简答题1.(6分)在8088 CPU的最大方式系统中,设20位地址全部需要锁存,数据线使用总线收发器,请问该CPU与系统总线的接口逻辑中需要哪些芯片?各需多少片?并叙述每块芯片的作用。
2.(6分)PC/XT机的输入输出方式有哪几种?各有什么特点?四、(10分)下图是一个存储器系统,地址总线共有20位,数据总线8位,试分析电路,回答1、2、3、4题问题。
1.单片EPROM和单片SRAM的容量各为多少?2.74LS138的作用是什么?3.EPROM2的地址范围是多少?4.SRAM2的地址范围是多少?五、(10分)设在最大方式下,8086系统中有一块主8259A和一块从8259A,从8259A接至主8259A的IR1上,主、从8259A的偶地址分别是0200H和0210H。
主8259A的IR 0中断类型码是30H,从8259A 的IR0的中断类型码是38H。
所有请求都是边沿触发,用EOI命令清ISR位,两块8259A采用级联方式连接。
主、从8259A的IMR都清除,EN/SP用作输入。
试编写该中断系统的初始化程序。
(答案)微机原理及应⽤⼀、填空题(每空1分,共30分)1、CPU访问存储器时,在地址总线上送出的地址称为物理地址。
2、80X86系统中,执⾏指令PUSH AX后,SP= SP-2 ;若执⾏指令POP AX后,SP= SP+2 。
3、指令“MOV AX,2000H”源操作数的寻址⽅式为⽴即数 ;指令“MOV AX,[BX+SI+6]”源操作数的寻址⽅式为带偏移量的基础加变址。
4、设(DS)=24EOH,(SS)=2410H,(ES)=2510H,(DI)=0206H,则指令“MOV AX,[DI+100H]”源操作数的有效地址为 0306H ,物理地址为 25106H 。
5、80486可访问两个独⽴的地址空间,⼀个为I/O地址空间,其⼤⼩为 64K 字节。
6、执⾏指令“XOR AX,AX”后,标志位ZF的值为 1 。
7、若(AL)=10011000B,(BL)=01100111B,则执⾏指令“ADD AL,BL”后,(AL)=11111111B;执⾏指令“AND AL,BL”后,(AL)= 0 。
8、可屏蔽中断从CPU的 INTR 引脚进⼊,只有当中断允许标志IF为 1 时,该中断才能得到响应。
9、中断向量表存放在从 00000H ⾄ 003FFH 存储空间中。
10、在实地址⽅式下,中断类型号为20H的中断所对应的中断向量,存放在内存从 00080H 开始的四个连续字节单元中,若这四个字节单元的内容由低地址到⾼地址依次为00H,50H,00H,60H,则中断服务程序的⼊⼝地址 65000H 。
11、80X86的I/O指令中,要寻址的16位的端⼝地址存放在 DX 中。
12、现要⽤6116静态RAM芯⽚构成8K×32位的存储器,此种芯⽚共需16 ⽚。
13、8255A在“⽅式1输出”与外设之间的⼀对"握⼿"信号是 ACK和OBF 。
14、由实地址⽅式上,由逻辑地址获得物理地址的计算公式为:物理地址= 段基址×16+偏移地址。
微机原理及应用试题库(附答案)《微机原理及应用》试题库1. 8086和8088的引脚信号中, D 为地址锁存允许信号引脚。
A.CLK B.INTR C.NMI D.ALE2. 下面的哪项是有效标识符: BA . 4LOOP: B. DELAYIS: C. MAIN A/B: D. GAMA$1:3. 如图所示的三态输出电路,当 A 时,V B≈V DD。
A. E(ENABLE)=1, A=1B. E(ENABLE)=1, A=0C. E(ENABLE)=0, A=1D. E(ENABLE)=0, A=04. 设 (SS)=2000H, (SP)=0100H,(AX)=2107H,则执行指令PUSH AX 后,存放数据21H的物理地址是D 。
A. 20102HB. 20101HC. 200FEHD. 200FFH5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的 A 。
A.符号地址 B.物理地址 C.偏移地址 D.逻辑地址6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是 A 。
A. CXB. BXC. BPD. DI(C)7. 执行下列程序段:MOV AX,0MOV BX,1MOV CX,100AA: ADD AX,BXINC BXLOOP AAHLT执行后的结果:(AX)= , (BX)= 。
A. 5050,99B. 2500,100C. 5050,101D. 2550,1028. 假设V1和V2是用DW定义的变量,下列指令中正确的是 A 。
A.MOV V1, 20H B.MOV V1, V2C.MOV AL, V1 D.MOV 2000H, V29. – 49D的二进制补码为 A 。
A. 1100 1111B. 1110 1101C. 00010001D. 1110 110010. 在8086/8088CPU中,为了减少CPU等待取指所需的时间,设置了 C 。
微机原理试题库试题1一、填空题(24分)1、8086CPU寻址外设可以有两种方式,一种是寻址方式,另一种是寻址方式。
2、CPU在执行IN AL,DX指令时,M/引脚为电平,为电平。
3、微型计算机的组成4、CPU访问存储器进行读写操作时,通常在状态去检测READY ,一旦检测到READY无效,就在其后插入一个周期。
5、8086/8088系统中,存储器是分段的,每段最大长度是字节,段内偏移地址从到。
6、汇编语言源程序中的语句有三种类型,它们是语句,语句,语句。
7、一片8259A可管理级中断,经过级连最多可扩展为管理级中断。
8259A有个方式选择控制字和操作命令字。
8、CPU与外设之间的连接部件称为,它的基本功能是和。
9、数据的输入/输出指的是CPU与进行数据交换。
10、当8255A口工作在方式1输出时,A口输入信号联络线的名称是,输出信号联络线的名称是。
二、选择题(12分)1、设A=186,B=273Q,C=0BBH,它们之间的关系是。
A)A>B>C B)A<B<C C)A=B=C D)A<B=C2、8086CPU用ALE的下降沿将T1期间出现的信息锁存在外部地址锁存器中A) A0~A19 B) C) A和B D) D0~D153、下列四条指令中错误的是。
A)MOV AX,[SI] B)MOV AX,[BP+DI] C)MOV AX,[DI] D)MOV AX,[BP—DI]4、在8086/8088系统中,约定用于形成堆栈段数据物理地址的寄存器有。
A)SS,SP,BP B)SS,SP,BXC)DS,BX,BP D)DS,SP,BP5、.EXE文件产生在之后。
A)汇编 B)编辑 C)用软件转换 D)连接6、由2732芯片组成64KB的存储器,则需要块芯片和根片内地址线。
A)12 B)24 C)16 D)147、若8259A工作在优先级自动循环方式,则IRQ3的中断请求被响应并且服务完毕后,优先权最高的中断源是。
一.编程题 (共43题,430分)1.1 [库中题号:060030] 10分编写完整的8086汇编程序:将字符缓冲区A的字符'1234567890'倒序存放到缓冲区B中。
1.2 [库中题号:060029] 10分编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。
加密表为;输入数字: 0,1,2,3,4,5,6,7,8,9密码数字: 7,5,9,1,3,6,8,0,2,41.3 [库中题号:060028] 10分试编写程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第0位为1,则与其相应的设备就输入一个字符;如果其中任一状态寄存器的第3位为1,则整个输入过程结束。
两个状态寄存器的端口地址分别是0024和0036,与其相应的数据输入寄存器的端口则为0026和0038,输入字符分别存入首地址为BUFF1和BUFF2的存储区中。
1.4 [库中题号:060027] 10分把0~10010之间的30个数,存入首地址为GRAD的字数组中,GRAD+i表示学号为i+1的学生成绩。
另一个数组RANK是30个学生的名次表,其中RANK+I的内容是学号为i+1的学生的名次。
试编写程序,根据GRAD中的学生成绩,将排列的名次填入RANK数组中(提示:一个学生的名次等于成绩高于这个学生的人数加1)。
1.5 [库中题号:060026] 10分已知整数变量A和B,试编写完成下述操作的程序:(1)若两个数中有一个是奇数,则将该奇数存入A中,偶数存入B中;(2)若两个数均为奇数,则两数分别加1,并存回原变量;(3)若两个数均为偶数,则两变量不变。
1.6 [库中题号:060025] 10分试编写完整的程序,要求从键盘输入3个16进制数,并根据对3个数的比较显示如下信息:(1)如果3个数都不相等则显示0;(2)如果3个数中有2个数相等则显示2;(3)如果3个数都相等则显示3。
微机原理及应用试题及答案(总23页)-本页仅作为预览文档封面,使用时请删除本页-电气工程及其自动化专业《微机原理及应用》试题一、填空题(每空1分)1. 微型计算机系统的主要性能指标有:字长、存储容量、指令系统、运算速度、系统配置。
2. 微型计算机系统硬件包括:运算器、控制器、存储器、输入设备、输出设备等部件,这些部件通过数据总线、地址总线、控制总线相连接。
3. 8086的标志寄存器中控制标志有:IF、DF、TF。
4. 8086的标志寄存器中状态标志有: CF 、 AF 、 ZF 、 PF 、 SF 、 OF 。
5. 随机存储器RAM可分为双极型和 MOS型两大类。
6. 只读存储器ROM可分为:ROM、PROM、EPROM、EEPROM。
7. 8255A是可编程并行输入/输出接口,它有3个8位端口,3种工作方式。
8. 8253是可编程定时器/计数器,它有 3 个计数通道, 6 种工作方式。
9. 串行通信中的数据传送模式有:单工,半双工,全双工。
10. 串行通信中最基本的通信方式:异步通信,同步通信。
11. ADC0809有 8 个模拟量输入信号,可用 3 位地址信号控制,有 8 位数据输出。
12. DAC0832是可编程数/模转换器,有8位数字量输入信号,2个模拟量输出信号,可设置3种工作方式。
13. 8259A是可编程中断控制器,它有 4 个初始化命令字, 3 个操作命令字。
14.汇编语言指令语句格式:[标号:]操作码助记符[操作数1][,操作数2][;注释]15.CPU和输入/输出设备之间传送的信息有数据信息、状态信息、控制信息。
16. 串行通信中信号传输时的调制解调方式有:调频、调幅、调相。
17. DAC0832可工作在直通、单缓冲、双缓冲三种方式。
18.地址译码的方式有线译码、部分译码、全译码三种。
19.RS-232C串行通信接口T X D和R X D信号的电气性能中“1”= -3~-25V ;“0”= +3~+25V 。
微机原理与应用-习题集(含答案)《微机原理与应用》课程习题集一、单选题1.一个字是____位二进制数。
A、32B、20C、16D、82.一个字节是____位二进制数。
A、32B、20C、16D、83.在计算机内部,一切信息的存取、处理和传送都是以形式进行的。
A、EBCDIC码B、ASCII码C、十六进制编码D、二进制编码4.下列数据中,可能是6进制数的是。
A、488B、357C、541D、1265.下列数据中,可能是八进制数的是。
A、182B、417C、696D、1086.下面几个不同进制的中,最大的数是。
A、1100010BB、225QC、500D、1FEH7.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母g的ASCII码为十进制数。
A、102B、103C、104D、1058.字符d的ASCII码为十六进制数64,字符j的ASCII码为十六进制数。
A、68B、69C、6AD、6B9.数字字符4的ASCII码为十六进制数34,数字字符9的ASCII 码为十六进制数。
A、37B、38C、39D、4010.已知英文大写字母A的ASCII码为十进制数65,则英文大写字母E的ASCII码为十进制数。
A、67B、68C、69D、7011.十进制数36转换成二进制数是。
A、110100B、100100C、100110D、10010112.与十进制数96等值的二进制数是。
A、1100000B、1100001C、1011110D、110110013.十进制数60转换成二进制数是。
A、111100B、111110C、111101D、11011014.十进制负数-61的八位二进制原码是。
A、10101111B、10111101C、10101011D、0011010115.十进制数59转换成八进制数是。
A、73QB、37QC、59QD、112Q16.二进制数1101.01转换成十进制数是。
A、17.256B、13.5C、13.25D、17.517.二进制数10101转换成十进制数是。
1)(正确)比较两个无符号数的大小(量个数放在内存S3的连续两个单元中),将大数存入MAX单元中。
DATAS SEGMENTBUF DB 1,2CNT EQU $-BUFDATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXMOV CX,CNT-1LEA BX,BUFMOV AL,[BX]L2: INC BXCMP AL,[BX]JAE L1MOV AL,[BX]L1:LOOP L2ADD AL,30HMOV DL,ALMOV AH,2INT 21HMOV AH,4CHINT 21HCODES ENDSEND STAR2)(正确)试编一程序,求三个带符号数据中的最大值,并将最大值存入MAX单元中,设三个带符号数分别在三个变量X,Y,Z中存储。
DATAS SEGMENTX DB 5Y DB-2Z DB 0MAX DB?DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXMOV AL,XMOV BL,YCMP AL,BLJG L1MOV AL,BLL1:MOV BL,ZCMP AL,BLL2: MOV MAX,ALMOV AH,4CHINT 21HCODES ENDSEND START3)(正确)根据MODE单元中编号0-7分别转向L0-L7标号处,执行L0-L7处分别完成显示‘0-7’字符,即当MODE=0时,转向L0标号,完成显示‘0’,当MODE=7时,转向L7标号,完成显示‘7’。
DATAS SEGMENTMODE DB 0DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXMOV AL,MODECMP AL,0JZ L0CMP AL,1JZ L1CMP AL,2JZ L2CMP AL,3JZ L3CMP AL,4JZ L4CMP AL,5JZ L5CMP AL,6JZ L6MOV DL,'7'MOV AH,02H INT 21H JMP L8L0:MOV DL,'0' MOV AH,02H INT 21H JMP L8L1:MOV DL,'1' MOV AH,02H INT 21H JMP L8L2:MOV DL,'2' MOV AH,02H INT 21H JMP L8L3:MOV DL,'3' MOV AH,02H INT 21H JMP L8L4:MOV DL,'4'MOV AH,02HINT 21HJMP L8L5:MOV DL,'5'MOV AH,02HINT 21HJMP L8L6:MOV DL,'6'MOV AH,02HINT 21HJMP L8L8:MOV AH,4CHINT 21HCODES ENDSEND START4)(正确)根据输入值(0-4)的不同,执行不同的操作,用转移标法编写程序。
微机原理编程题1. 分支程序设计①.编写一段程序,已知BUF1单元中有一带符号字节数据X,BUF2中有一带符号字节数据Y,根据以下函数关系编写程序求Z的值,结果存入RESULT 单元。
Z=|X-Y|;DATA SEGMENTBUF1 DB 05HBUF2 DB 02HRESULT DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,BUF1MOV BL,BUF2SUB AL,BLJNC GREATNEG ALGREAT:MOV RESULT,ALEXIT: MOV AH,4CHINT 21HCODE ENDSEND START②.编写一段程序,已知BUF单元中有一无符号字节数据X,假设为8,根据以下函数关系编写程序求Y的值,结果存入RESULT 单元。
Z=5X X<10,X-5 X>=10;DATA SEGMENTBUF DB 8RESULT DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,BUFCMP AL,10JAE GREMOV BL,ALADD AL,ALADD AL,ALADD AL,BLJMP DONEGRE: SUB AL,5DONE: MOV RESULT,ALMOV AH,4CHINT 21HCODE ENDSEND START③.在内存单元BUF中存放一个带符号字节数据X,假定为-2,试根据以下函数关系编写程序求Y的值,结果存入RESULT 单元。
Y=1 X>0,0 X=0,-1 X<0;DATA SEGMENTBUF DB -2RESULT DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,BUFCMP AL,0JGE L1MOV AL,-1JMP L3L1:JZ L2MOV AL,1JMP L3L2:MOV AL,0L3:MOV RESULT,ALMOV AH,4CHINT 21HCODE ENDSEND START2. N个数中求最大值、最小值.假定N=10,已知原始数据存放在BUF开始的内存单元中,将结果存入MAX,MIN内存单元中。
重庆科技学院试题库系统试题库导出试题微机原理及应用-编程题(43题)题序:0017题型:06难度:01分值:10.0章号:03节号:02知识点:;8086/8088指令系统题干:变量DATAX和DATAY定义如下:DATAX DW 0148HDW 2316HDATAY DW 0237HDW 4052H试编写一个程序段,实现将DATAX和DATAY两个字数据相乘(用MUL)。
答案:解: (1) MOV AX, DATAXMUL DATAYMOV DATAY,AXMOV DATAY+2,DX题序:0018题型:06难度:02分值:10.0章号:03节号:02知识点:;8086/8088指令系统题干:变量DATAX和DATAY定义如下:DATAX DW 0148HDW 2316HDATAY DW 0237HDW 4052H试编写一个程序段,实现将DATAX除以23(用DIV)。
答案:解: (1) MOV AX, DATAXMOV BL, 23DIV BLMOV BL,AHMOV AH, 0MOV DATAY, AX ;存放商MOV AL,BLMOV DATAY+2, DX ;存放余数题序:0002题型:06难度:03分值:10.0章号:03节号:02知识点:;8086/8088指令系统题干:试编写一个程序段,实现将BX中的数除以10,结果仍放在BX中。
答案:解:MOV CL,0AHMOV AX,BXDIV CLMOV BX,AX题序:0016题型:06难度:03分值:10.0章号:03节号:02知识点:;8086/8088指令系统题干:变量DATAX和DATAY定义如下:DATAX DW 0148HDW 2316HDATAY DW 0237HDW 4052H试编写一个程序段,实现将DATAX和DATAY中的两个双字数据相加, 和存放在DATAY和答案:解: (1) MOV AX, DATAXADD AX, DATAYMOV BX, DATAX+2ADD BX, DATAY+2MOV DATAY, AXMOV DATAY+2, BX题序:0020题型:06难度:03分值:10.0章号:03节号:02知识点:;8086/8088指令系统题干:变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。
答案:解:MOV AX, 0MOV AL, N1+1SUB AL, N2+1AASMOV DL, ALMOV AL, N1SBB AL, N2AASMOV DH, AL题序:0006题型:06难度:02分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序实现对两个存储区中的字进行比较。
如找到一对不同的字,则退出,此时,ZF为0,DI 指向此字;如两个存储区中所有的字都相同,则退出程序时,CX中值为0,ZF为1。
答案:解:MATT: MOV SI, OFFSET SOURCE ; 源区首址MOV DI, OFFSET TARGET ; 目的区首址MOV CX, NUMBERJCXZ EXIT ; 如CX为0,则结束PUSH CX ; 保存有关寄存器PUSH SIPUSH DICLD ; 清方向标志REPE CMPSWJZ MATCH ; 比较PUSHF ; ZF为1,则转移SUB DI, 2 ; ZF为0,则DI 指向次字POPFJMP EXIT ; 推出MATCH: POP DI ; 恢复寄存器 POP SIPOP CXEXIT: RET题序:0015题型:06难度:02分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:根据下列要求编写一个汇编语言程序::(1)代码段的段名为COD_SG(2)数据段的段名为DAT_SG(3)堆栈段的段名为STK_SG(4)变量HIGH_DAT所包含的数据为95(5)将变量HIGH_DAT装入寄存器AH,BH和DL(6)程序运行的入口地址为START答案:解:DAT_SG SEGEMNTHIGH_DAT DB 95DAT_SG ENDS;STK_SG SEGMENTDW 64 DUP(?)STK_SG ENDS;COD_SG SEGMENTMAIN PROC FARASSUME CS: COD_SG, DS: DAT_SG, SS: STK_SGSTART: MOV AX, DAT-SGMOV DS, AXMOV AH, HIGH_DATMOV BH, AHMOV DL, AHMOV AH, 4CHINT 21HMAIN ENDPCOD_SG ENDSEND START题序:0026题型:06难度:02分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:已知整数变量A和B,试编写完成下述操作的程序:(1)若两个数中有一个是奇数,则将该奇数存入A中,偶数存入B中;(2)若两个数均为奇数,则两数分别加1,并存回原变量;(3)若两个数均为偶数,则两变量不变。
答案:解:dseg segmenta dw ?b dw ?dseg endscseg segmentmain proc farassume cs:cseg,ds:dsegstart: push dssub ax,axpush axmov ax,dsegmov ds,axbegin: mov ax,amov bx,bxor ax,bxtest ax,0001jz classtest bx,0001jz exitxchg bx,amov b,bxjmp exitclass: test bx,0001jz exitinc binc aexit: retmain endpcseg endsend start题序:0001题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:在DS段中有一个从TABLE开始的由160个字符组成的链表,设计一个程序,实现对此表进行搜索,找到第一个非0元素后,将此单元和下一单元清0。
答案:解: MOV CX, SEG TABLEMOV DS, CX ;将段地址送DSMOV SI, OFFSET TABLE ;表偏移量送SIMOV CX, 160 ;字节数XOR AL, ALNEXT: CMP AL, [SI]JNE EXIT1INC SILOOP NEXTEXIT1: MOV [SI], ALINC SIMOV [SI], AL题序:0004题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:用循环控制指令设计程序段,从60H 个元素中寻找一个最大值,结果放在AL中。
答案:解: MOV SI, OFFSET DATA1 ; 将数据起始地址送SIMOV CX, 5FH ; 有60H-1次循环MOV AL, [SI] ; 将第一个元素放AL中COMPARE: INC SICMP AL, [SI]JL XCHMAXJMP NEXTXCHMAX: MOV AL, [SI]NEXT: LOOP COMPARE题序:0007题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序实现在TABLE 为起始地址的100个字符长度的表中检索“$"字符。
答案:解:START: MOV CX, SEG TABLE ; 表段地址送ES MOV ES, CXMOV DI, OFFSET TABLE ; 表偏移量送DIMOV AL, '$' ; 检索的关键字MOV CX, 64H ; 检索的字节数PUSH DI ; 保存起始地址CLD清除方向标志REPNE SCASB ; 检索JNZ NFOUN ; 如未找到,则转移SUB DI, 1 找到,则指向字符JMP EXITNFOUN: POP DI ; 恢复起始地址EXIT: RET题序:0009题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序实现两个16位非组合BCD码的数相加。
答案:解:ANBCD: MOV CH, AH ; 进入程序段时,AX中为第二个操作数ADD AL, BL ; BX中为被加数,实现低8位相乘AAAXCHG AL, CHADC AL, BH ; 实现高8位相加AAAMOV AH, AL ; 和保存在AX中MOV AL, CHRET题序:0010题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序段设计一个实现16位非组合BCD码减法的程序。
答案:解:SUBCD: MOV CH, AH ; AX-BX->AX,为非组合BCD码SUB AL, BLAASXCHG AL,CHSBB AL,BHAASMOV AH,ALMOV AL,CHRET题序:0011题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计编写程序实现两个16位组合BCD码相减,进入程序时,BX中为减数,AX中为被减数,程序执行后,结果在AX中。
答案:解:STASUB: MOV CH, AH ; 保存高8位SUB AL, BL ; 低8位相减DAS ; 十进制调整XCHG AL, CHSBB AL, BH ; 高8位相减DASMOV AH, AL ; 结果在AX中MOV AL, CHRET题序:0012题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序实现两个16位组合BCD码相加。
进入程序时,BX中为加数,AX中为被加数,程序执行后,结果在AX中。
答案:解:STAADD: MOV CH, AH ; AX+BX->AX,为组合BCD码ADD AL,BLDAAXCHG AL,CHADC AL,BHDAAMOV AH,ALMOV AL,CHRET题序:0013题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序将一个8位二进转换为2位BCD数字,进入程序时,AL中为二进制数,退出程序时,如CF为0,则AL中为BCD数字,如CF为1,则表示由于输入值超出范围故结果无效。
解:START: CMP AL, 99 ; 是否超出范围?JBE STRATSTC ; 是,则转EXIT,并给CF置1JC EXITSTRAT: MOV CL, 10 ; 10作为除数XOR AH, AHCBW ; 将AL中数扩展到AHDIV CL ; 除法结果AL中为高位,AH中为低位MOV CL, 4SHL AL, CL ; 左移4位OR AL, AH ; 合成BCD码在AL中EXIT: RET题序:0014题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序用XLAT指令将小于16的二进制数转换成ASCII表示的16进制数。