1、MOV AX, 07H BX 000BACABMOV AX, BP 0003B4B3MOV AX, TABLE BP A8A7MOV AX, 08H BP BCBBMOV AX, BP+06H BAB9MOV AX, DS:BP+03H 0006A7A6MOV AX, BP+05H B9B8 SI+03H C6C5MOV AX, DI+06H MOV AX, DI+05H MOV AX, TABLE SI MOV AX, SI 0002A3A2MOV AX, TABLE DI A6A5MOV AX, SI+05H MOV AX, BX DI+01H 基址变址且相对寻址MOV AX, BX SI
2、+03H MOV AX, TABLE BX SI 000AABAABX DI 基址变址寻址MOV AX, BP DI+02H B7B6MOV AX, TABLE BP DI BP SI MOV AX, BP SI+05H BBBAMOV AX, 03H BP DI MOV AX, BP SI B6B5MOV AX, BP+02H DI+03H MOV AX, TABLE BP+02H DI+03H 000DAEAD1. 编写求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。STACK SEGMENT STACK STACKDW 100H DUP(?)TO
3、P LABEL WORDSTACK ENDS ;堆栈段DATA SEGMENTADD1 DD 12678532HADD2 DD 21736543HSUM DD ?DATA ENDS ;数据段CODE SEGMENT ;代码段 ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX LEA SP,TOP LEA SI,ADD1 LEA DI,ADD2 MOV AL,SI ADD AL,DI DAA MOV BYTE PTR SUM,AL MOV AL,SI+1 ADC AL,DI+1 D
4、AA MOV BYTE PTR SUM+1,AL MOV AL,SI+2 ADC AL,DI+2 MOV BYTE PTR SUM+2,AL MOV AL,SI+3 ADC AL,DI+3 MOV BYTE PTR SUM+3,AL MOV AX,WORD PTR SUM+2 CALL DISPAX MOV AX,WORD PTR SUM MOV AH,4CH INT 21H DISPAL PROC NEAR PUSH AX PUSH CX PUSH DX MOV CL,4 SHR AL,CL CALL CHANG MOV AH,02 MOV DL,AL INT 21H POP AX AND
5、AL,0FH POP DX POP CX RETDISPAL ENDPCHANG PROC NEAR CMP AL,10 JNGE CHANG1 ADD AL,7CHANG1: ADD AL,30HCHANG ENDPDISPAX PROC NEAR XCHG AL,AH CALL DISPAL XCHG AH,ALDISPAX ENDPCODE ENDS END START2. 有一个首地址为A的N字数组,请编程序使该数组中的数按从大到小的次序排列。STACK SEGMENT STACK DB 256 DUP(?STACK ENDSDATA1 DW 7800H,6832H,0000H,87H
6、,1275H,0EC34HSTRING1 DB input number:,0DH,0AH,$STRING2 DB The numbers from large to small is:DATA ENDSCODE SEGMENTASSUME CS:DATA,ES: MOV ES,AX LEA DX,STRING1 MOV AH,09H MOV CX,6 LEA SI,DATA1L1: MOV AX,SI ADD SI,2 CALL DISPCR LOOP L1 MOV CX,5 ADD SI,10LP1: PUSH SILP2: CMP AX,SI-2 JBE NOXCHG XCHG AX,S
7、I-2 MOV SI,AXNOXCHG: DEC SI LOOP LP2 POP SI LOOP LP1 LEA DX,STRING2 MOV CX,6L2: LOOP L2DISPAL PROC MOV AH,02HPOP AX AND AX,0FHCHANG PROCCHANG ENDP DISPAX PROC DISPCR PROC MOV AH,2 MOV DL,0AH MOV DL,0DHDISPCR ENDP3.编写如下程序,并在机器上调试成功。程序采用菜单式选择,可以接收用户从键盘输入的四个命令(1-4),各命令功能分别为:(1)按下“1”键,完成字符串小写字母变成大写字母。(2
8、)按下“2”键,完成找最大值(3)按下“3”键,完成排序(4)按下“4”键,结束程序运行,返回系统提示符。DISPL MACRO STR PUSH DX PUSH AX LEA DX,STRENDMISCONTINUE MACRO L DISPS 15,10,SMENU MOV AH,08H CMP AL,1BH JNE L JMP MAINCURSOR MACRO CURX,CURY PUSH BX MOV DH,CURX MOV DL,CURY MOV BH,0 INT 10H POP BXDISPS MACRO X,Y,STR MOV BH,00H MOV DH,X MOV DL,Y L
9、EA DX,STRSCROLL MACRO N,ULR,ULC,LRR,LRC,ATT MOV AH,06H MOV AL,N MOV CH,ULR MOV CL,ULC MOV DH,LRR MOV DL,LRC MOV BH,ATTPREP MACRO T LEA SI,INBUF+1 LEA DI,OUTBUF SCROLL 21,2,0,22,79,0FH DISPS 3,20,T DISPS 6,2,CAPION DISPS 8,2,INCAP MOV AH,0AH MOV CH,0 MOV CL,SI INC SI DB 100H DUP(?BASE DW MAIN,LTC,FMV
10、,SORTS,EXITWELCM DB Welcome to this program!MMENUC DB Please input the number!MMENU1 DB 1 -Lowercase Letters To Capital Letters$MMENU2 DB 2 -Find The Maximum figure$MMENU3 DB 3 -Sort$MMENU4 DB 4 -Exit! SMENU DB Press Any Key To restart,Press ESC To Return To Main Menu!WROCAP DB WRONG! You have press
11、 key! Please input a number between 1 and 4!CAPION DB Please Input Your Strings and End With Enter Key!INCAP DB Your Input Is: $INBUF DB 100 DB ? DB 100 DUP(?OUTCAP DB My Output Is:OUTBUF DB 100 DUP(?MAXCAP DB The char of max ASCII is: .$ERRINF DB ERROR! Please check the format you input!TDINV DB In
12、valid time data! Input again! NODATCAP DB You have input nothing!TIME DB 8 DUP (:),12 DUP ( LEA DX,INBUF CLCMAIN: SCROLL 0,0,0,24,79,0 SCROLL 25,0,0,24,79,50H DISPS 8,20,MMENUC DISPS 10,20,MMENU1 DISPS 12,20,MMENU2 DISPS 14,20,MMENU3 DISPS 16,20,MMENU4ML: CURSOR 19,1DH MOV AH,01H CMP AL,31H JL ERROR
13、 CMP AL,35H JG ERROR AND AX,00FH LEA BX,BASE SHL AL,1 ADD BX,AX JMP WORD PTR BX ; CMP AL,1 JE LTC 2 JE FMV 3 JE SORTS 4 JE EXIT ERROR: CMP AL,0DH JE MCR MOV WROCAP+23,AL ;Other char MOV WROCAP+24, JMP DMCR: MOV WORD PTR WROCAP+23,RCD: DISPS 20,5,WROCAP ;Show the wrong information JMP MLLTC: CALL LLT
14、OCL ISCONTINUE LTCFMV: CALL FMAXV ISCONTINUE FMVSORTS: CALL SORT ISCONTINUE SORTSEXIT:LLTOCL PROC REFLASHL:PREP MMENU1 CMP CL,0 JE REFLASHLLL1:a JB MTOB ;NO CHANGEz JA MTOB SUB AL,20H ;ConvertMTOB: MOV DI,AL INC SI INC DI LOOP LL1 MOV BYTE PTR DI, DISPS 10,2,OUTCAP DISPS 10,17,OUTBUF LLTOCL ENDPFMAX
15、V PROC REFLASHF:PREP MMENU2 JE REFLASHF MOV AL,0FL1: CMP AL,SI JA NEXTNEXT: LOOP FL1 MOV MAXCAP+26,AL DISPS 10,2,MAXCAP RET FMAXV ENDPSORT PROC PREP MMENU3 DEC CX ADD SI,CX MOV BYTE PTR SI+1, CMP AL,SI-1 JBE NOXCHG XCHG AL,SI-1 MOV SI,AL POP SI POP CX DISPS 10,2,OUTCAP DISPS 10,17,INBUF2 RETSORT ENDPBCDASC PROC NEAR CBW MOV BL,10 DIV BL MOV TIMESI,AL ADD AH,30H MOV TIMESI,AHBCDASC ENDPEND START按下4键
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1