汇编实验报告—山东大学 联系客服

发布时间 : 星期五 文章汇编实验报告—山东大学更新完毕开始阅读b8d60c0e763231126edb111b

mov al,ds:[di] xchg al,ds:[di+1] mov ds:[di],al inc di loop test1 mov cx,dx

mov di,offset buff+2 loop tep1 tep2:

pop ax cmp ax,1 je tep4 mov cx,ax dec cx tep3:

mov dx,cx test2:

mov al,ds:[si] xchg al,ds:[si+1] mov ds:[si],al inc si

loop test2 mov cx,dx

mov si,offset buf+2 loop tep3 tep4: popf

MOV DI,OFFSET buff+2 MOV SI,OFFSET buf+2 mov cx,10

ADDS: MOV AL,ds:[DI] ADC AL,dS:[SI] AAA

MOV ds:[DI],AL INC DI INC SI

LOOP ADDS MOV CX,10

SHOW:MOV DL,ds:[DI-1] ADD DL,30H DEC DI

MOV AH,2H INT 21H LOOP SHOW MOV AH,4CH

INT 21H CODES ENDS END START

CODES ENDS END START 实验结果:

实验总结:

1. 学会数据传送,由键盘输入是ASCII码需转换成十进制数加30h。 2. 学会了汇编加法指令的使用方法,以及BCD码调整。

3. 注意问题:汇编内部处理数据与输入是反向的,在显示时应倒序显示。

实验三 两个十进制数相乘并显示乘积

内容和要求:

实现一多位十进制数和一个一位十进制数的乘法,被乘数和乘数均以ASCII码形式存放在内存中,结果以十进制数形式显示在屏幕上。 目的:

掌握乘法指令的用法、计算结果的转换、存放及显示。 实验程序:

CRLF MACRO MOV DL,0DH MOV AH,02H

INT 21H MOV DL,0AH MOV AH,02H INT 21H ENDM

DATA SEGMENT DATA1 DB 20 DUP(?) DATA2 DB 20 DUP(?) str1 db'The first number(0~9):','$'

str2 db 'The second number(0~99):','$' z DB ? DATA ENDS

STACK SEGMENT

STA DB 20 DUP(?)

TOP EQU LENGTH STA STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX

MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX mov ah,09h lea dx,str1 int 21h CRLF

MOV BX,01

MOV SI,OFFSET DATA1 CALL INPUT2 CRLF

mov ah,09h lea dx,str2 int 21h CRLF

MOV BX,02 MOV SI,OFFSET DATA2 CALL INPUT1 CRLF CRLF

MOV SI,OFFSET DATA1

MOV BX,02 CALL DISPL mov ah,02 mov dl,2AH INT 21H

MOV SI,OFFSET DATA2 MOV BX,01 CALL DISPL mov ah,02h mov dl,3dh int 21h

MOV DI,OFFSET DATA1 xor z,0

CALL ADDA MOV SI,OFFSET DATA2 MOV BX,03

CALL DISPL CRLF

MOV AX,4C00H INT 21H

DISPL PROC NEAR DSI:

MOV AH,06

MOV DL,[SI+2] INT 21H MOV AH,06

MOV DL,[SI+1] INT 21H MOV AH,06

MOV DL,[SI] INT 21H

RET DISPL ENDP

ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,02

AD1: SUB BYTE PTR[SI+BX-1],30H DEC BX JNZ AD1

SUB BYTE PTR[DI],30H MOV SI,DX MOV DI,BP ;MOV CX,01 CLC AD2: MOV AL,[SI] MOV BL,[DI] imul BL AAM mov z,ah MOV [SI],al mov AL,[SI+1] mov BL,[DI] imul BL AAM ADC AL,z AAA

MOV [SI+1],AL MOV [SI+2],AH MOV SI,DX MOV DI,BP