1.编写统计AX 中1、0 个数的源程序。1 的个数存入CH,0 的个数存入CL。 CODE SEGMENT ASSUME CS:CODE START: MOV CX, 0 MOV DX,17 AA1: SUB DX, 1 JZ AA3 SHL AX, 1 JNC AA2 INC CH JMP AA1 AA2: INC CL JMP AA1 AA3: MOV AH,4CH INT 21H CODE ENDS END START 2.编写比较两个字符串STRING1 和STRING2 所含字符是否完全相同的源程序,若相同则显示“MATCH”,若不相同则显示“NO MATCH”。 程序: DATA SEGMENT R1 DB 'MATCH',0AH,0DH R2 DB 'NO MATCH',0AH,0DH STRING1 DB 'XXXXX' N1 EQU $-STRING1 STRING2 DB 'YYYYY' N2 EQU $-STRING2 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,N1 CMP AX,N2 JNZ AA1 ADD AX,1 LEA SI,STRING1 LEA DI,STRING2 AA2: MOV BL,[SI] MOV BH,[DI] INC SI INC DI SUB AX,1 JZ AA3 CMP BL,BH JZ AA2 JMP AA1 AA3: LEA BX,R1 MOV CX,7 AA4: MOV DL,[BX] INC BX MOV AH,2 INT 21H LOOP AA4 JMP E AA1: LEA BX,R2 MOV CX,10 AA5: MOV DL,[BX] INC BX MOV AH,2 INT 21H LOOP AA5 E: MOV AH,4CH INT 21H CODE ENDS END START 3.从键盘读入一个四位的十六进制数,CRT 显示等值的二进制数. 由于每个十六进制数位对应4 个二进制,所以每读入一个十六进制位后,即可将其对应的4个二进制位依次输出。由于数字‘0’~ ‘9’的ASCⅡ码为 30H~39H,字母‘a’~‘f’与 ‘A’~‘F’的ASCⅡ码为 61H~66H 与 41H~46H ,因此,如果输入的字母为数字‘0’~‘9’,则其低4位即为对应的二进制位;如果输入的字符为字母‘a’~‘f’或‘A’~‘F’,则需要减7,然后通过移位将低4位依次输出。 汇编程序如下: DATA SEGMENT MSG1 DB 'Hex:', '$' MSG2 DB 0DH, 0AH, 'Binary:', '$' COUNT EQU 4 BUF DB 4 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX LEA DX, MSG1 MOV AH, 9 INT 21H MOV CX, COUNT MOV SI, 0 INPUT: ;通过四次循环从键盘读入四位十六进制数 MOV AH, 1 INT 21H MOV BUF[SI], AL DEC CX INC SI CMP CX, 0 JNZ INPUT NEXT3: LEA DX, MSG2 MOV AH, 9 INT 21H MOV CX,...