微机汇编程序
【摘要】
又是自学的一学期,呵呵。
学到最后也就知道零星半点指令吧,复杂的程序可能还是不怎么会写,熟练当然也不敌C了,但是汇编之于嵌入式,往上走肯定少不了遇到,学好还是必要的!此次仅作入门吧。
今日所学,明...
又是自学的一学期,呵呵。
学到最后也就知道零星半点指令吧,复杂的程序可能还是不怎么会写,熟练当然也不敌C了,但是汇编之于嵌入式,往上走肯定少不了遇到,学好还是必要的!此次仅作入门吧。
今日所学,明日之用。
1、统计正负零的个数
DATAS SEGMENT
ARRAY DB 1,2,-1,0,2,0,-2,4,2,0
POSINUM DB 0
NEGANUM DB 0
ZERONUM DB 0
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
XOR AL,AL
LEA SI,ARRAY
MOV CX,10
CLD
LOOPER:
LODSB
OR AL,AL
JS NEGA
JZ ZERO
INC POSINUM
JMP EXIT
NEGA:
INC NEGANUM
JMP EXIT
ZERO:
INC ZERONUM
EXIT:
LOOP LOOPER
MOV AH,02H
;正数的个数
OR POSINUM,30H
MOV DL,POSINUM
INT 21H
MOV DL,' '
INT 21H
;零的个数
OR ZERONUM,30H
MOV DL,ZERONUM
INT 21H
MOV DL,' '
INT 21H
;负数的个数
OR NEGANUM,30H
MOV DL,NEGANUM
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
2、变量X乘以8
DATAS SEGMENT
X DB 1
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
MOV CL, 3
SHL X,CL
MOV AH,02H
OR X,30H
MOV DL,X
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
3、编程实现任意给定X值,根据x的值确定函数y的值
y和x的函数关系没给,那就随便写个 y=x2
DATAS SEGMENT
X DB 2
Y DB ?
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
SHL X, 1
MOV AL, X
MOV Y, AL
MOV AH,02H
OR X,30H
MOV DL,X
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
4、两个数的平均值
DATAS SEGMENT
X DB 2
Y DB 8
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
MOV AL, X
ADD Y,AL
SHR Y,1
MOV AH,02H
OR Y,30H
MOV DL,Y
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
5、符号函数
DATAS SEGMENT
X DB 0
Y DB ?
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
MOV AL,X
CMP AL,0
JGE LOOP1
MOV AL,-1
MOV Y,AL
RET;别忘了RET
LOOP1:
JG LOOP2
MOV AL,0
MOV Y,AL
RET
LOOP2:
MOV AL,1
MOV Y,AL
RET
MOV AH,4CH
INT 21H
CODES ENDS
END START
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。
原文链接:recclay.blog.csdn.net/article/details/80657001
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)