IBM-PC汇编语言程序设计实验报告 联系客服

发布时间 : 星期一 文章IBM-PC汇编语言程序设计实验报告更新完毕开始阅读a2a6fdf902768e9950e73830

RESULT2H DW 0 ;结果的高16位 RESULT2L DW 0 ;结果的低16位 C10 DW 10

OUTPUTBUFFER DB 11 DUP('0') DATAS ENDS CODES SEGMENT

ASSUME CS:CODES,DS:DATAS START:

MOV AX,DATAS MOV DS,AX CALL INPUT CALL FIB CALL OUTPUT JMP QUIT

;*********************************************************************** INPUT PROC

JMP T1

WRONG:LEA DX,WRONGSTR MOV AH,9 INT 21H

T1:LEA DX,STR1 MOV AH,9 INT 21H

LEA DX,INPUTBUFFER MOV AH,10 INT 21H MOV AX,0

MOV CL,INPUTBUFFER+1 MOV CH,0

LEA BX,INPUTBUFFER+2 T2:MUL C10 MOV DL,[BX] CMP DL,'0' JB WRONG CMP DL,'9' JA WRONG AND DL,0FH ADD AL,DL ADC AH,0 INC BX LOOP T2

CMP AX,0032H

第 13 页 共 21 页

JA WRONG CMP AX,1 JB WRONG MOV N,AX RET INPUT ENDP

;************************************************************ FIB PROC CMP N,1 JZ L1 CMP N,2 JZ L2 DEC N CALL FIB

MOV AX,RESULT2L MOV DX,RESULT2H MOV CX,RESULT1L ADD RESULT2L,CX MOV CX,RESULT1H ADC RESULT2H,CX MOV RESULT1L,AX MOV RESULT1H,DX JMP EXIT

L1:MOV RESULT1L,1 MOV RESULT2L,1 JMP EXIT

L2:MOV RESULT2L,1 DEC N CALL FIB EXIT:RET FIB ENDP

;************************************************************* OUTPUT PROC

MOV AX,RESULT2L LEA SI,OUTPUTBUFFER MOV CX,5

R1:MOV DX,0 ;低位加入OUTPUTBUFFER DIV C10 INC SI

ADD [SI],DL LOOP R1

;************************* MOV AX,RESULT2H LEA SI,OUTPUTBUFFER

第 14 页 共 21 页

MOV CX,5 R2:MOV DX,0 DIV C10 INC SI

PUSH CX ;高位加入OUTPUTBUFFER CMP DX,0 JE NOADD MOV CX,DX

ADDN:CALL ADD65536 LOOP ADDN NOADD:POP CX LOOP R2

;********************** LEA DX,STR2 MOV AH,9 INT 21H

LEA SI,OUTPUTBUFFER MOV BX,10

R3:CMP BYTE PTR [SI+BX],'0' JA PRINT

DEC BX ;显示十进制结果 JMP R3

PRINT:MOV DL,[SI+BX] MOV AH,2 INT 21H DEC BX CMP BX,1

JAE PRINT RET

OUTPUT ENDP

;************************************************************ ADD65536 PROC ;高位算法 ADD BYTE PTR [SI],6 MOV DL,0

CMP BYTE PTR [SI],3AH JB A1

SUB BYTE PTR [SI],10 MOV DL,1

A1:ADD BYTE PTR [SI+1],3 ADD BYTE PTR [SI+1],DL MOV DL,0

CMP BYTE PTR [SI+1],3AH JB A2

SUB BYTE PTR [SI+1],10

第 15 页 共 21 页

MOV DL,1

A2:ADD BYTE PTR [SI+2],5 ADD BYTE PTR [SI+2],DL MOV DL,0

CMP BYTE PTR [SI+2],3AH JB A3

SUB BYTE PTR [SI+2],10 MOV DL,1

A3:ADD BYTE PTR [SI+3],5 ADD BYTE PTR [SI+3],DL MOV DL,0

CMP BYTE PTR [SI+3],3AH JB A4

SUB BYTE PTR [SI+3],10 MOV DL,1

A4:ADD BYTE PTR [SI+4],6 ADD BYTE PTR [SI+4],DL MOV DL,0

CMP BYTE PTR [SI+4],3AH JB A0

SUB BYTE PTR [SI+4],10 MOV DL,1

A5:ADD BYTE PTR [SI+5],DL MOV DL,0

CMP BYTE PTR [SI+5],3AH JB A0

SUB BYTE PTR [SI+5],10 MOV DL,1

A6:ADD BYTE PTR [SI+6],DL MOV DL,0

CMP BYTE PTR [SI+6],3AH JB A0

SUB BYTE PTR [SI+6],10 MOV DL,1

A7:ADD BYTE PTR [SI+7],DL MOV DL,0

CMP BYTE PTR [SI+7],3AH JB A0

SUB BYTE PTR [SI+7],10 MOV DL,1

A8:ADD BYTE PTR [SI+8],DL MOV DL,0

CMP BYTE PTR [SI+8],3AH JB A0

第 16 页 共 21 页