1、微机原理整理后微机原理整理后2012微机原理14道题目 1. 在XXX单元中存放一个数x(0x15),请用查表法的方法计算x的平方,并将结果保存到YYY单元中。 课本197页 2. 已知数组100个字组成,存放在数据段中以偏移地址为ARY开始的内存中,试编写程序求出这个数组元数之和,结果存放在的数据段中以偏移地址为SUM开始的内存中。 课本184页 3.试编写一程序,将数据段中偏移地址为BUF1开始的100个数据传送到偏移地址为BUF2开始的连续内存单元中去。 STACK SEGMENT STACKSTACKDW100 DUP(?)STACK ENDS DATA SEGMENT BUF1 DB
2、100 DUP(?) BUF2 DB100 DUP(?)SRCADR DW?DSTADR DW?LEN DW? DATA ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATA MAIN PROC START: MOVAX,DATA MOVDS,AX MOVES,AX LEAAX,BUF1 MOVSRCADR,AX MOVLEN,100CALL MVDATMOVAX,4CHINT21H MAIN ENDPMVDAT PROC MOVSI,SRCADRMOVDI,DSTADRMOVCX,LENCLD CMPSI,DIJADONESTD A
3、DDSI,CX DECSIADDDI,CXDECDI DONE: REPMOVSBRETMVDAT ENDP CODE ENDS ENDSTART 4. 编写一个程序,实现SUM=a1+a2+?+a20。已知a1a20依次存放在以BUF为首址的数据区,每个数据占两个字节,SUM也是两个字节。 DATA SEGMENT DAT DW2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 SUM DW? DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUMECS:CODE,DS:DATASTART: MOVAX,DATAMOVDS,AXMOV
4、AX,0MOVSUM,AX MOVSI,OFFSET DATMOVCX,20 LP1: ADDAX,SIINCSIINCSILOOP LP1 MOVSUM,AXMOVAH,4CHINT21H MAIN ENDP CODE ENDS ENDSTART 5.试编写一程序,将AX中的各位去反,然后统计出AX中“0”的个数,将结果存到CL中。 CODE SEGMENT MAIN PROC FAR ASSUMECS:CODESTART: MOVAX,0E001HMOVDL,0MOVCL,16NOTAX RETEST: ANDAX,AXJSSKIP INCDLSKIP: SHLAX,1LOOP RETES
5、TMOVCL,DLEXIT: MOVAH,4CHINT21H MAIN ENDP CODE ENDS ENDSTART 6.在内存数据段存储器中,从ADDR单元开始存有一个字符串,它以“$”符号作为结束标志,试编写程序统计该字符串的长度,并把长度值存入LETH字单元。 DATA SEGMENT ADDR DBLIUBIN$ LETH DW? DATA ENDS STACK SEGMENT PARA STACKSTACKDB100 DUP(?)STACK ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACKSTART: MOVAX,DATAMOVDS,
6、AX MOVBX,OFFSET ADDRMOVCX,0 LP: MOVAL,BXCMPAL,$JEDONEINCCXINCBXJMPLP DONE: MOVADDR,CXMOVAH,4CHINT21H CODE ENDS ENDSTART 7. 试编写一程序,要求实现将ASCII码表示的两位十进制数转换为一字节二进制数,其中高地址单元存放十位数。 课本200页 8. 编程在显示器上输出你自己的汉语拼音姓名的子程序。 课本155页 .9将数据0-63置入到内存中以BUF为首址的连续64个字节单元中。 课本198页 10.试编写一程序,把数组STRING中存放的20个8位二进制数分成正数数组和负数
7、数组,并统计正数、负数和零的个数,结果分别存放到P、M、Z三个单元。 DATA SEGMENTSTRING DW 2 DUP(3045H,0FD34H,0D3DH,9899H,0,3DF2H,0,0FFDEH,93FDH,0DE6CH)P DW20 DUP(?)M DW20 DUP(?)Z DW20 DUP(?) DATA ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATASTART: MOVAX,DATAMOVDS,AXXORBP,BP LEASI ,P;正数LEADI ,M;负数LEABP ,Z;零PUSH SIPUSH DIPUSH BP LEABX,STRI
8、NGMOVCX,20 LL: MOVAX,BXPUSH AXADDAX,AXJZL1POPAXPUSH AXSALAX,1JCL2 POPAXMOVSI ,AXADDSI,2JMPLA LA: ADDBX ,2LOOP LLXORMOVPOPMOVSUBSHRMOVPOPMOVSUBSHRMOVPOPMOVSUBSHRMOVMOVINTL1: POPMOVADDJMPL2: POPMOVADD CX,CX CX,2 AX DX,BP DX,AX DX,CL BP ,DX AX DX,DI DX,AX DX,CL DI ,DX AX DX,SI DX,AX DX,CL SI ,DX AH,4CH
9、 21H AX BP,AX BP ,2 LA AX DI ,AX DI,2 JMPLA COD ENDS ENDSTART 11、试编写一程序,完成10个一位十进制数累加,累加结果以分离式BCD码形式存放于AH、AL寄存器中。DATAS SEGMENT TAB DB41H,42H,43H,44H,45H,46H BIN DB1101101110011110 BUF DB4 DUP(?)DATAS ENDS CODES SEGMENT ASSUMECS:CODES,DS:DATASSTART: MOVAX,DATASMOVDS,AXLEABX,TABLEASI,BINLEADI,BUFMOVCX
10、,4 LP1: MOVAX,SI+2PUSH CXXORCX,CXMOVCL,8RORAX,CLSUBAX,3030HMOVDX,SIRORDX,CLSUBDX,3030HSHLAH,1ADDAH,ALMOVCL,2SHLDL,CLMOVCL,3 SHLDH,CLADCDH,DLADCAH,DHCMPAH,0AHJBLP2SUBAH,0AHMOVAL,AHXLAT LP3: MOVDI,ALADDDI,1ADDSI,4POPCXLOOP LP1MOVAH,4CHINT21H LP2: ADDAH,30HMOVAL,AHJMPLP3CODES ENDS ENDSTART 12、试编写一程序,将2
11、个字节二进制数,变换成用ASCII码表示的四位十六进制数。 DATAS SEGMENT TAB DB41H,42H,43H,44H,45H,46H BIN DB1101101110011110 BUF DB4 DUP(?)DATAS ENDSCODES SEGMENT ASSUMECS:CODES,DS:DATASSTART: MOVAX,DATASMOVDS,AXLEABX,TAB LEASI,BINLEADI,BUFMOVCX,4 LP1: MOVAX,SI+2PUSH CXXORCX,CXMOVRORSUBMOVRORSUBSHLADDMOVSHLMOVSHLADCADCCMPJBSUB
12、MOVXLAT LP3: MOVADDADDPOPLOOPMOVINTLP2: CL,8 AX,CL AX,3030H DX,SI DX,CL DX,3030H AH,1 AH,AL CL,2 DL,CL CL,3 DH,CL DH,DL AH,DH AH,0AH LP2 AH,0AH AL,AH DI,AL DI,1 SI,4 CX LP1 AH,4CH 21HADDAH,30HMOVAL,AHJMPLP3CODES ENDS ENDSTART 13. 试用串操作指令SCAS,在10个字节的数据块BLOCK中,搜索与2EH相等的数,若找到,则将该数地址存放于ADR中,并在SIGNAL单元中做
13、标记0FFH;否则,SIGNAL单元中为00H。 DATA SEGMENT BLOCK DBN DUP(0)SINGAL DB00H ADR DB00H DATA ENDS CODE SEGMENT ASSUMEDS:DATA,CS:CODE,ES:DATASTART: MOVDI OFFSET BLOCKCLD MOVCX,10MOVSL,IEHREPNI SCASBJNZAAA MOVSIGNAL,0FFHMOVADR,IEH AAA: MOVSIGNAL,00H CODE ENDS ENDSTART 14. 编写一程序,计算100个16位正整数之和,如果和不超过16位值的范围,则保存其和
14、到SUM,如果超过则显示“Overflow”。 DAT SEGMENT DAT1 DW25 DUP (2D4EH,5611H,1234H,7891H) BUF DW? STR1 DBoverflow!,0DH,0AH,$ DAT ENDS COD SEGMENT ASSUMECS:COD,DS:DATSTART: MOVAX,DATMOVDS,AX MOVSI,OFFSET DAT1MOVBX,OFFSET BUFMOVCX,100XORAX,AX L1: ADD JCLOOP MOV MOV INTDISP PROC MOV MOV INTMOV INTDISP ENDP COD ENDS END AX,SI DISP L1 BX,AX AH,4CH 21H NEAR DX,OFFSET STR1 AH,9 21H AH,4CH 21H START
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2