汇编复习题 test2

来源:互联网 发布:洞主的淘宝店 编辑:程序博客网 时间:2024/06/04 18:16
1.已知变量X的值为2767,请编程序统计变量X中的二进制值中1和0的个数,并记入ONE和ZERO变量中。DATAS SEGMENT    X DW 2767H    ONE DW ?DATAS ENDSCODES SEGMENT    ASSUME CS:CODES,DS:DATASSTART:    MOV AX,DATAS    MOV DS,AX    MOV AX, X    MOV BX,0H    MOV CX,16again:    shl ax,1    ADC BX,0loop again    mov ONE,BX    MOV AH,4CH    INT 21HCODES ENDS    END START2.从键盘上输入一系列以$为结束符的字符串,然后对其中的字母字符计数,并显示出计数结果。DATAS SEGMENT    X DW 2767H    ONE DW ?    ZERO DW ?DATAS ENDSCODES SEGMENT    ASSUME CS:CODES,DS:DATASSTART:    MOV AX,DATAS    MOV DS,AX    MOV AX, X    MOV BX,0H    MOV CX,16again:    shl ax,1    JC ISONE    INC ZERO    JMP exitISONE: ADC BX,0exit:loop again    mov ONE,BX    MOV AH,4CH    INT 21HCODES ENDS    END START3.试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示“MATCH”,若不相同则显示“NO MATCH”。DATAS SEGMENT     str1 db 'dfsaff'     len_string1  equ  $-str1     str2 db 'dfsadf'     len_string2  equ  $-str2     str3 db 'match$'     str4 db 'not match$'DATAS ENDSCODES SEGMENT    ASSUME CS:CODES,DS:DATAS,ES:DATASSTART:    MOV AX,DATAS    MOV DS,AX    MOV ES,AX    xor bx,bx    mov cx,len_string1    cmp cx,len_string2    JNZ LAB2    MOV DI,OFFSET STR1    MOV SI,OFFSET STR2    repz CMPSB    JZ LAB1    JNZ LAB2LAB1:    mov dx,offset str3     mov ah,09h     int 21h     mov ah,4ch     int 21h LAB2:    mov dx,offset str4     mov ah,09h     int 21h     MOV AH,4CH    INT 21HCODES ENDS    END START4.编写一段子程序BINIHEX,完成十六进制数输出的功能。要输出的数在AX寄存器中。DATAS SEGMENT    show DW 12AcHDATAS ENDSCODES SEGMENT    ASSUME CS:CODES,DS:DATASSTART:    MOV AX,DATAS    MOV DS,AX    MOV AX,show    MOV CX,4Ag1:    push CX    MOV CL,4    ROL AX,CL    MOV DX,AX    AND DL,0FH    ADD DL,30H    CMP DL,39H    JNA show1    ADD DL,7H    CMP DL,46H    JNA show1    ADD DL,20Hshow1:    push ax    mov ah,02h    INT 21H    pop ax    pop CXloop Ag1    MOV AH,4CH    INT 21HCODES ENDS    END START
原创粉丝点击