求汇编语言100代码
- 提问者网友:两耳就是菩提
- 2021-06-02 18:11
- 五星知识达人网友:行雁书
- 2021-06-02 18:35
硬盘里还留了几个代码
发给你看看
时钟程序 显示当前系统时间
.386
DATA SEGMENT USE16
DATA ENDS
STACK SEGMENT USE16 STACK
STACK ENDS
CODE SEGMENT USE16
ASSUME DS:DATA,CS:CODE,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
L: ;显示位置
MOV DX,0
MOV AH,02H
INT 10H
MOV AH,2
INT 1AH
;显示小时
PUSH DX
MOV DL,CH
AND DX,00F0H
ROR DX,4
ADD DX,30H
MOV AH,2
INT 21H
MOV DL,CH
AND DX,000FH
ADD DX,30H
MOV AH,2
INT 21H
MOV DL,":"
MOV AH,2
INT 21H
;显示分钟
MOV DL,CL
AND DX,00F0H
ROR DX,4
ADD DX,30H
MOV AH,2
INT 21H
MOV DL,CL
AND DX,000FH
ADD DX,30H
MOV AH,2
INT 21H
MOV DL,":"
MOV AH,2
INT 21H
;显示秒
POP DX
PUSH DX
MOV DL,DH
AND DX,00F0H
ROR DX,4
ADD DX,30H
MOV AH,2
INT 21H
POP DX
MOV DL,DH
AND DX,000FH
ADD DX,30H
MOV AH,2
INT 21H
;判断是否有键盘输入没有则继续显示
MOV AH,1
INT 16H
JE L
MOV AH,4CH
INT 21H
CODE ENDS
END START
压缩 将输入的一段数字压缩比如1111123 压缩为 51-223表示5个相等的1两个不相等的23
.386
DATA SEGMENT USE16
BUF DB 50
DB 0
DB 50 DUP(0)
BUB DB 0DH,0AH,'$'
DATA ENDS
STACK SEGMENT USE16 STACK
STACK ENDS
CODE SEGMENT USE16
ASSUME DS:DATA,CS:CODE,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
;获得字符串
LEA DX,BUF
MOV AH,10
INT 21H
LEA DX,BUB
MOV AH,9
INT 21H
LEA BX,BUF
ADD BX,2
MOV CL,31H
MOV CH,[BUF+1]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;处理相等
L1: MOV AL,[BX]
CMP AL,[BX+1]
JNE L2
INC CL
INC BX
DEC CH
CMP CH,1
JE L2
JMP L1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示相等
L2: CMP CL,31H
JE L6
MOV DL,CL
MOV AH,2
INT 21H
MOV DL,[BX]
MOV AH,2
INT 21H
INC BX
CMP CH,1
JE EXIT
DEC CH
MOV CL,31H
JMP L1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;处理不等
L6: MOV CL,30H
PUSH BX
L7: MOV AL,[BX]
CMP AL,[BX+1]
JE L3
INC BX
INC CL
DEC CH
JZ L3
JMP L7
;显示不等
L3: MOV DL,'-'
MOV AH,2
INT 21H
MOV DL,CL
MOV AH,2
INT 21H
POP BX
L4: MOV DL,[BX]
MOV AH,2
INT 21H
INC BX
DEC CL
CMP CL,30H
JNE L4
CMP CH,0
JE EXIT
MOV CL,31H
JMP L1
EXIT: MOV DL,'0'
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
解压缩 与上面的压缩对应 将压缩结果解压缩
.386
DATA SEGMENT USE16
BUF DB 50
DB 0
DB 50 DUP(0)
BUB DB 0DH,0AH,'$'
DATA ENDS
STACK SEGMENT USE16 STACK
STACK ENDS
CODE SEGMENT USE16
ASSUME DS:DATA,CS:CODE,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
;获得字符串
LEA DX,BUF
MOV AH,10
INT 21H
LEA DX,BUB
MOV AH,9
INT 21H
LEA BX,BUF
ADD BX,2
L: MOV CL,[BX]
CMP CL,'-'
JE L1
CMP CL,'0'
JE EXIT
MOV CL,[BX]
AND CL,0FH
INC BX
L3: MOV DL,[BX]
MOV AH,2
INT 21H
DEC CL
JNE L3
INC BX
JMP L
L1: INC BX
MOV CL,[BX]
AND CL,0FH
L2: INC BX
MOV DL,[BX]
MOV AH,2
INT 21H
DEC CL
JNE L2
INC BX
JMP L
EXIT: MOV DL,'0'
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
- 1楼网友:洒脱疯子
- 2021-06-02 19:29