微机原理程序代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理大作业题目及程序代码
1、将AX寄存器中16位数分成4组,每组四位,然后把这四位数分
别放在AL、BL、CL和DL中。
code segment
assume cs:code
start: mov ax,1234h;测试数据
mov cl,4
mov dx,ax
and dl,0fh
and dh,0fh
mov bl,dh
mov bh,al
ror bh,cl
and bh,0fh
mov ch,bh
ror ah,cl
and ah,0fh
mov al,ah
mov cl,ch
mov ah,4ch
int 21h
code ends
end start
1、试编写一程序,要求比较两个字符串STRING1和STRING2所
含字符是否相同,若相同则显示“MATCH”,若不相同则显示“NOMATCH”。
DATA SEGMENT
STRING1 DB 'HELLO.'
C1 EQU $-STRING1
STRING2 DB 'HELLO!'
C2 EQU $-STRING2
S1 DB 'MATCH$'
S2 DB 'NOMATCH$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,C1
CMP SI,C2
JNZ N_M
MOV BX,0
L1: MOV AL,STRING1[BX]
CMP AL,STRING2[BX]
JNZ N_M
INC BX
DEC SI
JNZ L1
MOV DX,OFFSET S1
JMP EXIT
N_M: MOV DX,OFFSET S2
EXIT: MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
2、试编写一程序,要求能从键盘接收一个个位数N,然后响铃N
次。
CODE SEGMENT
ASSUME CS:CODE
START: ;MOV DL,7
;MOV AH,2
;INT 21H
MOV AH,1
INT 21H
CMP AL,30H
JBE EXIT
CMP AL,39H
JA EXIT
SUB AL,30H
MOV CL,AL
L1: MOV DL,07H
MOV AH,2
INT 21H
MOV BX,1FFFH;延时L3: MOV DX,0FFFFH
L2: DEC DX
JNZ L2
DEC BX
JNZ L3
DEC CL
JNZ L1
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
3、编写程序,将一个包含有20个数据的数组M分成两个数组:
正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。
DATA SEGMENT
M DB 1,2,3,4,5,6,7,8,9,89,-1,-2
DB -3,-4,-5,-6,-7,-8,-9,0
P DB 20 DUP(?)
N DB 20 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV CX,20
MOV SI,0
MOV DI,0
MOV BX,OFFSET M
L: MOV AL,[BX]
CMP AL,0
JGE POS
MOV N[DI],AL
JMP L1 POS: JZ L1
MOV P[SI],AL
INC SI
L1: INC BX
LOOP L
MOV BX,SI
CALL DISP
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
MOV BX,DI
CALL DISP
MOV AH,4CH
INT 21H DISP PROC
MOV AX,BX
MOV CL,10
PUSH AX
MOV DL,AL
ADD DL,30H
MOV AH,2
INT 21H
POP AX
MOV DL,AH
ADD DL,30H
MOV AH,2
INT 21H
RET
DISP ENDP
CODE ENDS
END START
4、数据段中已定义了一个有n个字数据的数组M,试编写一程
序求出M中绝对值最大的数,把它放在数据段M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中。
DATA SEGMENT
M DW 1,2,3,-4,-55,-6,7,-8
COUNT EQU $-M
DW 2 DUP(?)