(1)练习并掌握汇编语言开发全过程,在屏幕打印HELLO字符串。
程序段为:
.486
DATA SEGMENT USE16 ;定义数据段
MESG DB '1511','$' ;引号内为学号
DATA ENDS
CODE SEGMENT USE16 ;定义代码段
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
LAST: MOV AH,9
MOV DX,OFFSET MESG
INT 21H
MOV AH,4CH
INT 21H ;返回DOS
CODE ENDS
END BEG
(2 )排除语法错误:给出的是一个通过比较法完成 8 位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。要求实验者按照原样对源程序进行编辑,汇编后,根据 TASM 给出的信息对源程序进行修改,知道没有语法错误为止。然后进行链接,并执行相应可执行文件。正确的执行结果在屏幕上显示: 25+9=34 。
修改后代码:(分号后为修改) ;FILENAME: EXA131.ASM .486 DATA SEGMENT USE16 SUM DB ?,?, ;SUM DB ?,? MESG DB '25+9=' DB 0,0 :DB 0,0,'$' N1 DB 9,F0H : N1 DB 9,0F0H N2 DB 25 DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE, DS:DATA BEG: MOV AX, DATA MOV DS,AX MOV BX,OFFSET SUM MOV AH,N1 MOV AL,N2 ADD AH,AL MOV [BX],AH CALL CHANG MOV AH,9 MOV DX,OFFSET MESG INT 21H MOV AH,4CH INT 21H CHANG PROC LAST: CMP [BX],10 ;LAST: CMP BYTE PTR [BX],10 JC NEXT SUB [BX],10 : SUB BYTE PTR [BX],10 INC [BX+7] : INC BYTE PTR [BX+7] JMP LAST NEXT: ;MOV CL,SUM ADD [BX+8],SUM ;ADD [BX+8],CL ; MOV DL,30H ADD [BX+7],30H ;ADD [BX+7],DL ADD [BX+8],30H ;ADD [BX+8],DL RET CHANG ENDP CODE ENDS END BEG运行代码:
;FILENAME: EXA131.ASM .486 DATA SEGMENT USE16 SUM DB ?,? MESG DB '25+9=' DB 0,0,'$' N1 DB 9,0F0H N2 DB 25 DATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE, DS:DATA BEG: MOV AX, DATA MOV DS,AX MOV BX,OFFSET SUM MOV AH,N1 MOV AL,N2 ADD AH,AL MOV [BX],AH CALL CHANG MOV AH,9 MOV DX,OFFSET MESG INT 21H MOV AH,4CH INT 21H CHANG PROC LAST: CMP BYTE PTR [BX],10 JC NEXT SUB BYTE PTR [BX],10 INC BYTE PTR [BX+7] JMP LAST NEXT: MOV CL,SUM ADD [BX+8],CL MOV DL,30H ADD [BX+7],DL ADD [BX+8],DL RET CHANG ENDP CODE ENDS END BEG