汇编语言小程序例子

2018-11-09 21:51

1.编写统计AX中1、0个数的源程序。1的个数存入CH,0的个数存入CL。

CODE SEGMENT

ASSUME CS:CODE

START: MOV CX, 0

MOV DX,17

AA1: SUB DX, 1

JZ AA3

SHL AX, 1

JNC AA2

INC CH

JMP AA1

AA2: INC CL

JMP AA1

AA3: MOV AH,4CH

INT 21H

CODE ENDS

END START

2.编写比较两个字符串STRING1和STRING2所含字符是否完全相同的源程序,若相同则显示“MATCH”,若不相同则显示“NO MATCH”。

程序:

DATA SEGMENT

R1 DB 'MATCH',0AH,0DH

R2 DB 'NO MATCH',0AH,0DH

STRING1 DB 'XXXXX'

N1 EQU $-STRING1

STRING2 DB 'YYYYY'

N2 EQU $-STRING2

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AX,N1

CMP AX,N2

JNZ AA1

ADD AX,1

LEA SI,STRING1

LEA DI,STRING2

AA2: MOV BL,[SI]

MOV BH,[DI]

INC SI

INC DI

SUB AX,1

JZ AA3

CMP BL,BH

JZ AA2

JMP AA1

AA3: LEA BX,R1

MOV CX,7

AA4: MOV DL,[BX]

INC BX

MOV AH,2

INT 21H

LOOP AA4

JMP E

AA1: LEA BX,R2

MOV CX,10

AA5: MOV DL,[BX]

INC BX

MOV AH,2

INT 21H

LOOP AA5

E: MOV AH,4CH

INT 21H

CODE ENDS

END START

3.从键盘读入一个四位的十六进制数,CRT显示等值的二进制数.

由于每个十六进制数位对应4个二进制,所以每读入一个十六进制位后,即可将其对应的4个二进制位依次输出。由于数字‘0’~ ‘9’的ASCⅡ码为30H~39H,字母‘a’~‘f’与 ‘A’~‘F’的ASCⅡ码为61H~66H 与41H~46H ,因此,如果输入的字母为数字‘0’~‘9’,则其低4位即为对应的二进制位;如果输入的字符为字母‘a’~‘f’或‘A’~‘F’,则需要减7,然后通过移位将低4位依次输出。

汇编程序如下:

DATA SEGMENT

MSG1 DB 'Hex:', '$'

MSG2 DB 0DH, 0AH, 'Binary:', '$'

COUNT EQU 4

BUF DB 4 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX, DATA

MOV DS, AX

LEA DX, MSG1

MOV AH, 9

INT 21H

MOV CX, COUNT

MOV SI, 0

INPUT: ;通过四次循环从键盘读入四位十六进制数

MOV AH, 1

INT 21H

MOV BUF[SI], AL

DEC CX

INC SI

CMP CX, 0

JNZ INPUT

NEXT3: LEA DX, MSG2

MOV AH, 9

INT 21H

MOV CX, COUNT

MOV SI, 0

NEXT2: MOV BL, BUF[SI]

CMP BL , '9'

JBE OK ; 读入的字符<=9 转向 OK:


汇编语言小程序例子.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年福建高职招考数学模拟试题:古典概型

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: