1. 首页 > 科技

谁会汇编帮我写个代码? 汇编代码

谁会汇编帮我写个代码?汇编代码

谁能帮我用汇编语言写一个简单的程序

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。