汇编语言程序设计 综合复习
INC BX REPNE SCASB
LOOP N JZ DONE
MOV SIGN,0 MOV SIGN,0 JMP EXIT0 JMP EXIT0 DONE: MOV SIGN,1 DONE: MOV SIGN,1 EXIT0: HLT EXIT0: HLT
…… 9. 从键盘接收一个4位十进制数据,并将其存入ASCII缓冲区,若输入出错,则调用子程序输出出错信息,提示重新输入,试编写一程序完成上述功能。
DATA SEGMENT
ASCII DB 4 DUP(?) SIGN DB ‘Input error,Repeat! $’ 和打印出的第7章DATA ENDS 程序设计题一样! CODE SEGMENT
ASSUME CS:CODE,DS:DATA 若输入:3456 START: MOV AX,DATA DONE: CALL OUTPUT MOV DS,AX JMP NEXT LEA SI,ASCII OUTPUT PROC ASCII 33H MOV CX,4 PUSH CX NEXT: MOV AH,01H LEA DX,SIGN 34H INT 21H MOV AH,09H CMP AL,30H INT 21H 35H JB DONE POP CX CMP AL,39H RET 36H JA DONE OUTPUT ENDP MOV [SI],AL CODE ENDS INC SI END START LOOP NEXT MOV AH,4CH INT 21H
SI
源程序:
DATA SEGMENT M1 DB ×× M2 DB ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA
共28页 第 26 页 10.编写一完整源程序,将M1中的二进制数按位倒排送M2中,即M1第0位送M2第7位,M1第1位送M2第6位,依次类推。 数据段如下: DATA SEGMENT M1 DB YY;任一字节数 M2 DB ? DATA ENDS 汇编语言程序设计 综合复习
MOV DS,AX MOV CX,8 MOV AL,M1 XOR AH,AH LOP: SAL AL,1
RCR AH,1 D7 D0 LOOP LOP M1: 1 0 1 0 1 0 1 1 MOV M2,AH
MOV AH,4CH D7 D0 INT 21H M2: 1 1 0 1 0 1 0 1 CODE ENDS
END START
11.在数据段中,WEEK是星期一~星期日的英文缩写,DAY单元中有数1~7(1 表示星期一,7表示星期日):
WEEK DB ‘MON’, ‘TUE’, ‘WED’, ‘THU’, ‘FRI’, ‘SAT’, ‘SUN’ DAY DB X ; 数字1~7
试编写一源程序,根据DAY的内容用单个字符显示功能调用(2号功能)去显示对应的英文缩写。 源程序:
DATA SEGMENT
WEEK DB ‘MON’, ‘TUE’, ‘WED’, ‘THU’, ‘FRI’, ‘SAT’, ‘SUN’ DAY DB X DATA ENDS LOP: MOV DL,WEEK[BX] CODE SEGMENT MOV AH,02H ASSUME CS:CODE,DS:DATA INT 21H START:MOV AX,DATA INC BX MOV DS,AX LOOP LOP XOR BX,BX MOV AH,4CH MOV BL,DAY INT 21H DEC BL CODE ENDS MOV AL,BL END START SAL BL,1 ADD BL,AL MOV CX,3
12.试编制一程序段,用串操作指令STOSB实现向DA数据区依次相间存放字母字符A,B, C,??J和数字字符0~9,相间顺序是:A,0,B,1,C,2,?,I,8,J,9(设DA数据区所在段已由ES指向) 源程序: MOV AL,‘A’
MOV AH,‘0’
ES DI LEA DI,DA DA A MOV CX,20 0 共28页 第 27 页
汇编语言程序设计 综合复习
CLD B LOP:STOSB; (DI) AL DI DI+1 1 INC AL C XCHG AL,AH 2 LOOP LOP ??
13.在首地址为TAB的数组中按递增次序存放着100个数,试编程将出现次数最多的数以及出现的次数分别存放于变量NUM和COUNT中,并以: COUNT=? 的形式输出COUNT的值(设最多重复次数<10) DATA SEGMENT
BUF DB 1,2,14H,14H,14H,14H,14H,15H,15H,15H,15H,59H LEN =$-BUF NUM DB ? COUNT DB 0
MM DB 'COUNT=','$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV SI,0 MOV CX,LEN MOV BL,0
A: MOV AL,BUF[SI] CMP AL,BUF[SI+1] JNE KL1 INC BL MOV BH,AL JMP KL2
KL1:CMP COUNT,BL JAE L2 注意和教材 MOV COUNT,BL P1065.6比较 MOV NUM,BH L2: MOV BL,0 KL2:INC SI LOOP A INC COUNT LEA DX,MM MOV AH,9 INT 21H
共28页 第 28 页
MOV DL,COUNT ADD DL,30H MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS
END START
共28页 汇编语言程序设计 综合复习
第 29 页