《2022年程序设计方法 .pdf》由会员分享,可在线阅读,更多相关《2022年程序设计方法 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1. 对两个 8 字节无符号数求和,这两个数分别用变量DATA1及 DATA2表示。将两数之和的最高进位放在AL中,两数之和的其他位按从高到低顺序依次放在SI,BX,CX,DX 中。解:程序如下: DATA SEGMENT DATA1 DB 0CDH,0BCH,0ABH,9AH,78H,56H,34H,12H DATA2 DB 12H,34H,56H,78H,9AH,0ABH,0BCH,0CDH DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA BG: MOV AX, DATA MOV DS, AX LEA DI, DATA1MOV DX, DI
2、MOV CX, DI+2 MOV BX, DI+4 MOV SI, DI+6LEA DI, DATA2ADD DX, DI ADC CX, DI+2 ADC BX, DI+4 ADC SI, DI+6 MOV AL, 0ADC AL, 0MOV AH, 4CHINT 21HCODE ENDS END BG名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 2. 比较以存储变量DATA1和 DATA2表示的两个有符号数据的大小,将其中
3、较大数据放在BX寄存器中。解:程序如下 :DATA SEGMENTDATA1 DW -113DATA2 DW -110DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATABEGIN: MOV AX, DATA MOV DS, AXMOV BX, DATA1CMP BX, DATA2JGE NEXTMOV BX, DATA2NEXT: MOV AH, 4CHINT 21HCODE ENDS END BEGIN名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
4、- 第 2 页,共 8 页 - - - - - - - - - 3. 从 AA单元开始的20 个连续单元中存放有20个无符号数, 从中找出最大数送入BB单元中,试编程。答:先把第一个数送入AL 寄存器,将AL 中的数与后面的19 个数逐个比较,若AL中的数小于相比较的数,将两两交换位置,否则两数不交换位置。在比较过程中, AL 中始终保持较大的数,比较19 次,则 AL 中必为最大数,然后将其送入BB单元中。 DATA SEGMENT AA DB 36,58,16,46,71,118,73,52,41,62 DB 2,18,8,24,56,79,113,87,104,75 BB DB ? DA
5、TA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE MAIN PROC FAR START: PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA MOV DS, AX MOV AL, AA MOV BX, OFFSET AA MOV CX, 29 LOOP1: INC BX CMP AL, BX JAE LOOP2 XCHG AL, BX LOOP2: DEC CX JNZ LOOP1 MOV BB, AL RET MAIN ENDP CODE ENDSEND START名师资料总结 - - -精品资料欢迎下载 - - - - -
6、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 4. 试编写一汇编源程序:找出从无符号字节数据存储变量VAR开始存放的N个数中的最大数放在 BH中。解:程序如下: DSEG SEGMENT VAR DB 3,56H, 6, 19H, 23H, 0A5H N EQU $-VAR DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG BG: MOV AX, DSEG MOV DS, AX MOV CX, N-1 MOV SI, 0 MOV BH,
7、VARSIJCXZ LAST AGIN: INC SI CMP BH, VARSI JAE NEXT MOV BH, VARSI NEXT: LOOP AGIN LAST: MOV AH, 4CHINT 21H CSEG ENDS END BG名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 5. 试编写一汇编源程序:将一组有符号存储字节数据按从小到大的顺序排列。设数组变量为VAR ,数组元素个数为N。D SEGMENTVAR D
8、B -1, -10, -100, 27H, 0AH, 47HN EQU $-VARD ENDSC SEGMENT ASSUME CS: C, DS:DB: MOV AX, D MOV DS, AXMOV CX, N-1MOV DX, 1AG: CALL SUBPINC DXLOOP AG MOV AH,4CH INT 21H SUBP PROC PUSH CX MOV CX, N SUB CX, DX MOV SI, 0RECMP: MOV AL, VARSI CMP AL, VARSI+1 JLE NOCH XCHG AL, VARSI+1 XCHG AL, VARSINOCH: INC S
9、I LOOP RECMP POP CX RETSUBP ENDPC ENDS END B名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 6. 试编写一源程序:在显示器上显示“HOW ARE YOU? ”, 然后读一个字符。但不显示此字符,若读入字符是Y,则显示“OK ”。解:程序如下: D SEGMENT D1 DB HOW ARE YOU?, 0DH, 0AH, $D2 DB OK, 0DH, 0AH, $ D ENDS C
10、SEGMENT ASSUME CS:C, DS:D BG: MOV AX, D MOV DS, AX MOV DX, OFFSET D1 MOV AH, 9INT 21H MOV AH,8 INT 21HCMP AL, YJNE NEXTLEA DX, D2MOV AH, 9INT 21HNEXT: MOV AH, 4CH INT 21H C ENDS END BG名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - 7. 试编写一源
11、程序:屏幕显示“ PASSWORD?”, 随后从键盘读入字符串,并比较这个字符串与程序内部设定的字符串。若二者相同则显示“OK ”,否则不作任何显示(0DH是回车的ASC 码)。解:程序如下: D SEGMENTPASS1 DB 12ABN EQU $-PASS1 D1 DB PASSWORD?, 0DH, 0AH, $ PASS2 DB 20DB ?DB 20 DUP(?)D2 DB 0DH,0AH, OK$D ENDSC SEGMENT ASSUME CS:C, DS:D, ES:D BG: MOV AX,D MOV DS,AX MOV ES,AX LEA DX,D1 MOV AH,9IN
12、T 21HLEA DX,PASS2MOV AH,0AHINT 21HLEA SI,PASS1LEA DI,PASS2CMP BYTE PTRDI+1,NJNE LASTMOV CX,NLEA DI,PASS2+2CLDREPZ CMPSBJZ DISOKLAST: MOV AH,4CH INT 21HDISOK: LEA DX,D2 MOV AH,9 INT 21H JMP LASTC ENDS END BG名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -