1、 MOV SI, 0 LEA DX, THEME1 MOV AH, 9 INT 21H MOV AH,02H MOV DL,07H INT 21H LEA DX, THEME2 JMP INPUT_MNEW_M: LEA DX, M_ERROR INT 21H INPUT_M: LEA DX, POINT_M MOV MARK,0 CALL GETNUM CMP MARK,1 JZ NEW_M MOV AX,BUFFSI-1 AND AX,00FFH CMP AX,0012H JBE L1 DEC SI JMP NEW_ML1: CALL HuanHang JMP INPUT_DNEW_D:
2、LEA DX, D_ERRORINPUT_D: LEA DX, POINT_D JZ NEW_D CMP AX,0031H JBE L2 JMP NEW_DL2:INPUT_Y: LEA DX, POINT_Y JZ INPUT_Y LEA DX,POINT MOV AH,9 MOV AX,BUFF2 CALL DISP4 MOV DL,- MOV AX,BUFF0 CALL DISP2 MOV AX,BUFF1 JMP START DISP4 PROC NEAR PUSH AX MOV AL,AH POP AX RET DISP4 ENDPDISP2 PROC NEAR MOV BL,AL
3、MOV DL,BL MOV CL,04 ROL DL,CL AND DL,0FH CALL DISP1 RETDISP2 ENDPDISP1 PROC NEAR ADD DL,30H CMP DL,3AH JB DDD ADD DL,27HDDD:DISP1 ENDPGETNUM PROC NEAR MOV DX, 0AGAIN: MOV AH, 01H CMP AL,1BH JZ EXIT CMP AL, 0DH JZ LP1 SUB AL, 30H CMP AL, 0 JB LP2 CMP AL, 9 JA LP2 MOV CL, 4 SHL DX, CL XOR AH, AH ADD D
4、X, AX JMP AGAINLP1: MOV AX, DX MOV BUFFSI,AX INC SILP3:LP2: LEA DX, ERROR MOV MARK,1 JMP LP3GETNUM ENDPHuanHangPROC NEAR MOV AH, 2 MOV DL, 0DH INT 21 MOV DL,0AHHuanHang ENDPEXIT: MOV AH, 4CHCODE ENDS END START2、输入字符并显示的那题:TITTLE DB 0DH,0AH,0DH,0AH,PLEASE INPUT 1F!QUIT WITH Esc0DH,0AH,MSG1 DB 0DH,0AH
5、, Hex:MSG2 DB 0DH,0AH,Binary:BUF DB 4 DUP(? LEA DX, TITTLELEA DX, MSG1;MOV AH, 9INT 21HMOV CX, 4MOV SI, 0INPUT: MOV AH, 1;通过四次循环从键盘读入四位十六进制数 CMP AL, 1BH;Esc键的ASCII码MOV BUFSI, ALINC SI LOOP INPUT LEA DX, MSG2NEXT: MOV BL, BUFSI CMP BL, 39H JBE LP2;读入的字符9 转向 OK SUB BL, 7;读入字符= 9 减7 AND BL, 0FH PUSH CX
6、 MOV CL, 4 SHL BL, CL;逻辑左移4位,低4位高4位 MOV CX, 4 SHL BL, 1;逻辑左移1位,最高位进入CF MOV DL, 30H ADC DL, 0;用到CF,转换为ASCII码 LOOP LP1 POP CX LOOP NEXT MOV DL, B显示二进制表示符 JMP STARTEND START3、小写字符转换为大写字符:DISPP1 DB 0AH,_Wrong Word!Please Input Again!DISPP2 DB 0DH,0AH,DISPP3 DB Please Input A Character,End With EscBUFF1
7、DB 50 DUP(?);BUFF2 DB 50 DUP(?代码段 LEA SI, BUFF1 LEA DI, BUFF2 LEA DX, DISPP3 MOV AH,9;9号功能调用可实现将字符串在屏幕上显示出来, INT 21H;要求:DS:DX指向字符串地址的首址,并且字符串必须以$为结束符1号功能,单个字符从键盘输入到AL寄存器,并在屏幕上显示出来 ;MOV BL, AL;暂存MOV DL, _MOV AH, 02H写与不写区别不大MOV AH, 02H;2号功能调用,单个字符显示,把要显示的字符的ASCII码送DL寄存器MOV AL, BL;取出 MOV SI, AL JZ DISP
8、LAY JZ OVER CMP AL, aCMP是比较指令,功能是目的操作数减去源操作数,但不送回相减的结果,只是使结果影响标志位 JB L1z JA L1 SUB AL, 20H;小写字母向大写字母转换 MOV DI, AL INC DIMOV AH, 2;LEA DX, DISPP2;回车并换行MOV AH, 9;INT 21H;LEA DX, DISPP2JMP START;循环 LEA DX, DISPP1;报错 LEA DX, DISPP2; JMP L2DISPLAY: MOV BYTE PTR DI,MOV BYTE PTR SI,LEA DX, BUFF1 MOV AH, 9;
9、 LEA DX, BUFF2 JMP START;OVER: MOV AH, 4CH;结束4、字符串匹配:STRING1 DB 250 DB ? DB 250 DUP(?STRING2 DB 250YES DB 0DH,0AH,MATCH!NO DB 0DH,0AH,NO MATCH!POINT1 DB 0DH,0AH,PLEASE INPUT THE FIRST STRING:POINT2 DB 0DH,0AH,ASSUME CS: MOV ES, AX LEA DX, POINT1 LEA DX, STRING1 MOV AH, 0AH LEA DX, POINT2 LEA DX, STR
10、ING2 CLD LEA SI, STRING1 LEA DI, STRING2 MOV CL, STRING11 MOV CH, 0 ADD SI, 2 ADD DI, 2 REPZ CMPSB JZ YESS LEA DX, NOYESS : LEA DX, YES5、好像有条关于字符、数据的题:DATA SEGMENT DISP1 DB 0DH,0AH,=INPUT STRING,THE END FLAG IS CR(24H),QUIT WITH CTRL-C=,0DH,0AH,0DH,0AH, DISP2 DB 0DH,0AH, DISP3 DB Please Input The Ne
11、w String(The Number Of Datas In The String Is10!): DISP4 DB What The String Is: DISP5 DB The Number Of Datas In The String Is: BUFF DB 200 DUP(?) CODE,DS: MOV DI, 0;清指针 MOV CL, 0;清计数器 LEA DX, DISP1 9号功能调用,注意DX的值以及$ LEA DX, DISP3 MOV AH, 01H;1号功能调用,单个字符输入到AL中 CMP AL, 0DH;AL中是回车吗? CMP AL, 03H;Ctrl-C退出
12、 MOV BUFFDI,AL;存入缓冲区 CMP AL, 39H JA NEXT CMP AL, 30H JAE LP2 JMP NEXT INC CL;计数器加1ADD CL,30HMOV AL,CLMOV BUFFDI+1,AL MOV AL,0AH MOV BUFFDI+2,AL MOV AL, MOV BUFFDI+3,AL LEA DX, DISP2 LEA DX, DISP4 LEA DX,BUFF;MOV DX, OFFSET BUFF MOV DX,OFFSET DISP5;LEA DX, DISP5 MOV DL,CL MOV AH,2;2号功能调用6、读文件的那题(好像是倒
13、数第二题,记不清楚了): FILEN DB 21;文件名允许长度为20DB ?实际文件名长度 DB 20 DUP(?存新文件名 ERROP DB Open file error!,0AH,0DH, ERRRD DB Read file error!INMSG1 DB Please input filename: BUFIN DB 0F000H DUP(?输入缓冲区 EOF EQU 1AH;文件结束符CTRL+Z MOV AX,DATA MOV DS,AX LEA DX,INMSG1;显示要求输入打开的文件名信息 MOV AH,09H;9号功能调用 LEA DX,FILEN;输入文件名 MOV
14、AH,0AH;0A号功能调用可实现从键盘接收字符串到输入缓冲区;缓冲区第一个字节指出能容纳字符的最大个数,由用户设置;第二个字节存放实际输入的字符个数,由系统最后自动填入;从第三个字节开始存放从键盘输入的字符,知道Enter键结束 MOV BL,FILEN+1;取文件名长度 MOV BH,0;BX中装入文件名长度 MOV FILENBX+2,BYTE PTR 0;文件名末尾添加0 LEA DX,FILEN+2;指向文件名 MOV AL,0;以只读方式打开 MOV AH,3DH;3DH功能调用,打开文件 JC OPERR;打开出错,转OPERR,CF=1则跳转 MOV BX,AX;转存文件号RD
15、FILE: LEA DX,BUFIN;DX指向缓冲区 MOV CX,50H;每次读80个字节 MOV AH,3FH;3F功能调用,读文件 JC RDERR;CF=1则跳转,读出错,转RDERR OR AX,AX;读入的字节数是否为0 JZ CLFILE;若为AX为0,转CLFILE MOV DL,0DH;输出回车 MOV DL,0AH;输出换行,准备显示文件内容 MOV SI,0DISP0: MOV AL,BUFINSI;从缓冲区送一个字节到AL CMP AL,EOF;是否为文件结束符若是,转CLFILE MOV DL,AL;显示一个字符 MOV AH,2 INC SI;指向下一个字节 LOO
16、P DISP0 JMP RDFILE;再去读50H个字节RDERR: LEA DX,ERRRD;显示读文件出错的信息 JMP DISP1OPERR: LEA DX,ERROP;显示打开文件出错的信息DISP1: MOV AH,09H JMP ENDOCLFILE: MOV AH,3EH;3EH功能调用,关闭文件ENDO: MOV AH,4CH;退出7、响铃设计: DATA1 DB Input number1-9,quit with Zero(0) DISPP1 DB 0DH,0AH,回车与换行 DISPP2 DB _Wrong number,please input again or quit with Zero(0) LEA DX,DISPP1 LEA DX,DATA1 MOV AH,1; CMP AL,30H; CMP AL,39H AND AL,0FH;取低四位 CMP AL,0 JE OVER MOV CL,ALL3: MOV DL,07H;响
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2