当前位置:编程学习 > 汇编语言 >>

汇编问题,求教(如何用循环写下面的实验~~~~~~~?)

1. 实验目的: (1) 掌握分支程序的设计方法 (2) 掌握利用DEBUG修改参数、检查结果的方法。 (3) 掌握汇编语言源程序的编辑、汇编、连接及调试过程。 2. 实验内容 (1) 编写一个程序,显示AL寄存器中的两位十六进制数 (2) 编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。 3. 实验准备 (1) 编写实验内容要求的两个程序。 (2) 写出调试以上程序,即修改程序参数,检查结果的操作方法。 (3) 熟悉源程序汇编、连接命令的使用方法即要回答的内容。 4. 实验步骤 (1) 用EDIT或其它编辑软件,编写.ASM源程序,例如HEXASC.ASM及DSPKEY.ASM。 (2) 对其进行汇编及连接,产生.EXE文件。 (3) 对.EXE文件进行调试运行。 a. 用DEBUG调试运行,学会修改AL内容的方法。 b. 对DSPKEY.EXE键入不同的字符,分别进行调试。 c. 在MS-DOS下运行这两个.EXE文件。 5. 实验报告要求 画出两个程序的流程图,若要独立编写程序,应列出相应的程序清单。 6. 参考程序清单 (1) 显示AL中两位十六进制数程序: ;DISPHEX.ASM CODE SEGMENT ASSUME CS:CODE START: MOV AL,3EH MOV BL,AL MOV DL,AL MOV CL,4 SHR DL,CL CMP DL,9 JBE NEXT1 ADD DL,7 NEXT1: ADD DL,30H MOV AH,2 INT 21H ;显示高位ASCII码 MOV DL,BL AND DL,0FH CMP DL,9 JBE NEXT2 ADD DL,7 NEXT2: ADD DL,30H MOV AH,2 INT 21H ;显示低位ASCII码 MOV AH,4CH INT 21H CODE ENDS ;返回DOS END START (2) 显示键入字符程序 ;DISPKEY.ASM CODE SEGEMENT ASSUME CS:CODE START: MOV AH,1 INT 21H ;等待键入字符,送AL CMP AL,0DH ;是否是回车符? JZ DONE ;是则转DONE退出程序 CMP AL,’0’ JB NEXT CMP AL,’9’ JA CHARUP MOV DL,AL MOV AH,2 INT 21H JMP START CHARUP: CMP AL,41H JB NEXT CMP AL,5AH JA CHRDN DISPC: MOV DL,’C’ MOV AH,2 INT 21H NEXT: JMP START CHRDN: CMP AL,61H JB NEXT CMP AL,7AH JA NEXT JMP DISPC DONE: MOV AH,4CH INT 21H CODE: ENDS END START
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,