重庆科技学院试卷库系统试卷库导出试卷微机原理及应用-编程题(43题)题序:0017题型:06难度:01分值:10.0章号:03节号:02知识点:。
8086/8088指令系统题干:变量DATAX和DATAY定义如下:DATAX DW 0148HDW 2316HDA TAY DW 0237HDW 4052H试编写一个程序段,实现将DATAX和DA TAY两个字数据相乘(用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 2316HDA TAY 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 2316HDA TAY DW 0237HDW 4052H试编写一个程序段,实现将DATAX和DA TAY中的两个双字数据相加, 和存放在DA TAY和答案:解:(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。
答案:解: MA TT: MOV SI, OFFSET SOURCE 。
源区首址MOV DI, OFFSET TARGET 。
目的区首址MOV CX, NUMBERJCXZ EXIT 。
如CX为0,则结束PUSH CX 。
保存有关寄存器PUSH SIPUSH DICLD 。
清方向标志REPE CMPSWJZ MA TCH 。
比较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)数据段的段名为DA T_SG(3)堆栈段的段名为STK_SG(4)变量HIGH_DA T所包含的数据为95(5)将变量HIGH_DAT装入寄存器AH,BH和DL (6)程序运行的入口地址为START答案:解: DAT_SG SEGEMNTHIGH_DAT DB 95DA T_SG ENDS。
STK_SG SEGMENTDW 64 DUP(?)STK_SG ENDS。
COD_SG SEGMENTMAIN PROC FARASSUME CS: COD_SG, DS: DA T_SG, SS: STK_SG START: MOV AX, DAT-SGMOV DS, AXMOV AH, HIGH_DA TMOV 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 DA TA1 。
将数据起始地址送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 。
表段地址送ESMOV 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 STRA TSTC 。
是,则转EXIT,并给CF置1JC EXITSTRA T: 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知识点:。