谁会汇编帮我写个代码? 汇编代码
谁能帮我用汇编语言写一个简单的程序
ASSUME CS:CODE, DS:DATA
;---------------------------------
DATA SEGMENT ;数据段
STRING01 DB 13, 10, 'January $'
CHANG EQU $ - STRING01
STRING02 DB 13, 10, 'February $'
STRING03 DB 13, 10, 'March $'
STRING04 DB 13, 10, 'April $'
STRING05 DB 13, 10, 'May $'
STRING06 DB 13, 10, 'June $'
STRING07 DB 13, 10, 'July $'
STRING08 DB 13, 10, 'August $'
STRING09 DB 13, 10, 'September $'
STRING10 DB 13, 10, 'October $'
STRING11 DB 13, 10, 'November $'
STRING12 DB 13, 10, 'December $'
X DB ?
TEMP DB ?
DATA ENDS
;---------------------------------
CODE SEGMENT ;代码段
START:
MOV AX, DATA
MOV DS, AX
;--------------------------------
IN_LOOP:
MOV X, 0 ;数据清零.
MOV CX, 2 ;输入2位
_INX:
MOV AH, 1 ;输入单个字符.
INT 21H
;--------------------------------
CMP AL, 13
JE EXIT_IN
CMP AL, '0'
JB _IN_ERR ;小于'0',不是数字.
CMP AL, '9'
JA _IN_ERR
SUB AL, '0' ;还原为数字
MOV TEMP, AL ;暂存
MOV AL, x
MOV BL, 10 ;老数据乘以10
MUL BL
ADD AL, TEMP ;加上新数据.
MOV x, AL ;保存.
LOOP _INX ;继续输入.
JMP EXIT_IN
;--------------------------------
_IN_ERR:
MOV DL, 8
MOV AH, 2
INT 21H
POP CX
JMP _INX
;--------------------------------
EXIT_IN:
;--------------------------------
MOV AL, x ;
CMP AL, 0
JE EXIT
CMP AL, 12
JA EXIT
DEC AL
LEA DX, STRING01
MOV BL, CHANG
MUL BL
ADD DX, AX
MOV AH, 9
INT 21H
EXIT:
MOV AH, 4CH ;结束程序
INT 21H
CODE ENDS
END START
;---------------------------------
不想输入就输入<回车>,结束程序。
求汇编语言100代码
硬盘里还留了几个代码
发给你看看
时钟程序 显示当前系统时间
.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
汇编语言编程,写代码
;---------------------------
ASSUME CS:CC, DS:QW
;---------------------------
QW SEGMENT
M_1 DB 12, 13, 10, -5, -85, 37, 92, -25, 94, 10, -36
DB 1, 100, 12, -37, 85, -6, 28, 125, 34, 17, -92
LLL EQU $ - M_1
M_P DB 101 DUP(0)
M_N DB 101 DUP(0)
MSG DB 13, 10, 'Press any key to continue ... $'
O_P DB 13, 10, '+$'
O_N DB 13, 10, '-$'
QW ENDS
;---------------------------
CC SEGMENT
START:
MOV AX, QW
MOV DS, AX
;
CALL TONGJI
CALL DISPLAY
EXIT:
LEA DX, MSG
MOV AH, 9
INT 21H
MOV AH, 7
INT 21H
MOV AH, 4CH
INT 21H ;返回DOS
;---------------------------
TONGJI:
MOV BX, OFFSET M_1
MOV SI, OFFSET M_P
MOV DI, OFFSET M_N
MOV CX, LLL
LP: MOV AL, [BX]
CMP AL, 128
JB ZHENG
MOV [DI + 1], AL
INC DI
INC M_N
JMP NEXT
ZHENG:
MOV [SI + 1], AL
INC SI
INC M_P
NEXT:
INC BX
LOOP LP
RET
;---------------------------
DISPLAY:
LEA DX, O_P
MOV AH, 9
INT 21H
MOV AL, M_P
MOV AH, 0
CALL OUTPUT
LEA DX, O_N
MOV AH, 9
INT 21H
MOV AL, M_N
MOV AH, 0
CALL OUTPUT
RET
;---------------------------
OUTPUT:
MOV BX, 10
MOV CX, 0
OL1:MOV DX, 0
DIV BX
ADD DL, '0'
PUSH DX
INC CX
CMP AX, 0
JNZ OL1
MOV AH, 2
OL2:POP DX
INT 21H
LOOP OL2
RET
;---------------------------
CC ENDS
END START
;---------------------------
程序执行结果如下:
C:\MASM>ww
+15
-7
Press any key to continue ...
C:\MASM>
谁能帮我写一段汇编程序?
是文件名的第一个字符被改成了“E5”吧
UNDELETE——恢复删除命令
1.功能:恢复被误删除命令
2.类型:外部命令。
3.格式:UNDELETE[盘符:][路径名]〈文件名〉[/DOS]/LIST][/ALL]
4.使用说明:使用UNDELETE可以使用“*”和“?”通配符。
(1)选用/DOS参数根据目录里残留的记录来恢复文件。由于文件被删除时,目录所记载斩文件名第一个字符会被改为E5,DOS即依据文件开头的E5和其后续的字符来找到欲恢复的文件,所以,UNDELETE会要求用户输入一个字符,以便将文件名字补齐。但此字符不必和原来的一样,只需符合DOS的文件名规则即可。
(2)选用/LIST只“列出”符合指定条件的文件而不做恢复,所以对磁盘内容完全不会有影响。
(3)选用/ALL自动将可完全恢复的文件完全恢复,而不一一地询问用户,使用此参数时,若UNDELTE利用目录里残留的记录来将文件恢复,则会自动选一个字符将文件名补齐,并且使其不与现存文件名相同,选用字符的优选顺序为:#%——0000123456789A~Z。