admin 管理员组

文章数量: 887053


2024年1月25日发(作者:matlab开源代码下载网站)

汇编语言程序实例

第一份:用汇编语言对4位10进制数加密。密码是对应为9082746315。

DATA SEGMENT

TABLE DB 39H,30H,38H,32H,37H,34H,36H,33H,31H,35H;密码表

RESULT DB 4 DUP(?);四位十进制数对应的密码

DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE

MAIN PROC FAR

MOV AX,DATA

MOV DS,AX

MOV ES,AX

LEA BX,TABLE

LEA DI,RESULT

MOV AX,1234;已知的四位十进制数,以下分别求四位十进制数位,并将密码存入RESULT中

MOV SI,1000

CALL NUMBER

MOV SI,100

CALL NUMBER

MOV SI,10

CALL NUMBER

MOV SI,1

CALL NUMBER

LEA DI,RESULT;在屏幕上依次显示四位加密后的十进制数

MOV CX,4

NEXT:

MOV DL,[DI]

MOV AH,2H

INT 21H

INC DI

LOOP NEXT

;按任意键退出

mov ah,1

int 21h

MOV AX,4C00H

INT 21H

MAIN ENDP

NUMBER PROC NEAR

MOV DX,0

DIV SI

MOV SI,DX

XLAT

STOSB

MOV AX,SI

RET

NUMBER ENDP

CODE ENDS

END MAIN

第二份:设有100个学生的成绩存放在RECORD为首地址的字节数据区中,试编写分支程序分别统计成绩为60~69分,70~79分,80~89分,90~99分,100分的人数(假设成绩都及格),分别存放在G6,G7,G8,G9,G10单元中.

data segment

record db 100 dub (?)

g6 db 0

g7 db 0

g8 db 0

g9 db 0

g10 db 0

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

lea si,record

mov cx,100

next:

mov al,[si]

cmp al,60

jb nextn

cmp al,70

jnb next7

inc g6

jmp nextn

next7:

cmp al,80

jnb next8

inc g7

jmp nextn

next8:

cmp al,90

jnb next9

inc g8

jmp nextn

next9:

cmp al,100

jnb next10

inc g9

jmp nextn

next10:

jne nextn

inc g10

nextn:

inc si

loop next

mov ah,1

int 21h

mov ax,4c00h

int 21h

code ends

end start

第三份:若自BLOCK开始的内存缓冲区中,有100个带符号的十六进制数,希望找到其中最大的一个值,并将它放到MAX单元中

解:程序流程图如图所示。

MOV BX,OFFSET BLOCK

MOV AX,[BX]

INC BX

INC BX

MOV CX,99

AGAIN: JG NWXT

MOV AXNEXT: INC BX

DEC CX

JNE AGAIN

MOV MAX HLT

CMP AX,[BX]

,[BX]

,AX

INC BX


本文标签: 密码 成绩 程序