汇编程序编写和提高.doc

实验四 汇编程序编写和提高 (编写程序和画程序流程图) 编写一个汇编程序,先键盘输入的多个小写字母,回车后用大写字母显示出来。 程序: DATAS SEGMENT buf db 100 dup(?) DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX lea si,buf convert: mov ah,1 int 21h cmp al,13 jz finish cmp al,a jb next cmp al,z ja next sub al,20h jmp next next: mov [si],al inc si jmp convert finish: mov dl,13 mov ah,2 int 21h mov dl,10 int 21h mov byte ptr [si],$ lea dx,buf mov ah,9 int 21h MOV AH,4CH INT 21H CODES ENDS END START 运行情况: 流程图: SKIPIF 1 0 将键盘上输入的十六进制数转换成十进制数,并在屏幕上显示。 程序: DATA SEGMENT DATA1 DB 6 DUP(?),$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DI,OFFSET DATA1+5 MOV BX,0 MOV CH,4 MOV CL,4 MOV SI,0AH JUDGE: MOV AH,01H INT 21H CMP AL,13 JE TRANSPORT CMP AL,30H JB EXIT CMP AL,39H JBE LAB CMP AL,41H JB EXIT CMP AL,46H JBE LAB1 CMP AL,61H JB EXIT CMP AL,66H JA EXIT SUB AL,57H JMP LAB2 LAB: SUB AL,30H JMP LAB2 LAB1: SUB AL,37H LAB2: SHL BX,CL ADD BL,AL DEC CH JNZ JUDGE TRANSPORT: MOV AX,BX DISPLAY: XOR DX,DX DIV SI ADD DL,30H MOV [DI],DL DEC DI CMP AX,0 JNZ DISPLAY XOR DX,DX MOV AH,09H INT 21H EXIT: MOV AH,4CH INT 21H CODE ENDS END START 运行情况: 流程图: SKIPIF 1 0 利用中断调用,在屏幕上显示1—9之间随机数。中断号86H 程序如下: DATAS SEGMENT ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX call set

文档评论(0)

1亿VIP精品文档

相关文档