抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

教材版本说明

Textbook version
Title: 16/32位微机原理、汇编语言及接口技术教程 修订版
Author: 钱晓捷
Instructor: 张春芳 河北师范大学

代码部分

01.屏幕打印‘Hello,how are you’

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
; hello,how are you

DATA SEGMENT
STRING DB 'hello.how are you!','$'
ORG 100H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEGIN:
MOV AX,DATA
MOV DS,AX
LEA DX,STRING
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN

02.屏幕打印 1+2+3 的结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
; 1 + 2 + 3 = 6

CODE SEGMENT
ASSUME CS:CODE
BEGIN:
MOV AL,01H
MOV BL,02H
ADD AL,BL
INC BL
ADD AL,BL
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN

03.编程实现1+2+3+…+100

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;1到100的和

DATA SEGMENT
SUM DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEGIN:
MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV BX,1
MOV CX,100
SLOOP:
ADD AX,BX
ADD BX,1
LOOP SLOOP
MOV SUM,AX
MOV DX,AX
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN

04.100以内的偶数(奇数)求和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;方法一:循环50次求和

DATA SEGMENT
SUM DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEGIN:
MOV AX,DATA
MOV DS,AX
MOV AX,0 ; 这里是 0 为偶数求和,是 1 为奇数求和
MOV BX,2
MOV CX,50 ;计数器 CX
SLOOP:
ADD AX,BX
ADD BX,2
LOOP SLOOP ; LOOP 会自动寻找计数器 CX
MOV SUM,AX
MOV DX,AX
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN

05.100以内的偶数(奇数)求和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;方法二:条件判断求和

DATA SEGMENT
SUM DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,0 ; 这里是 0 为偶数求和,是 1 为奇数求和
MOV BX,2
AGAIN:
ADD AX,BX
ADD BX,2
CMP BX,100
JBE AGAIN
MOV DX,AX
MOV SUM,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START

06.求数组最大(小)值

源代码

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
;求数组最大值

DATA SEGMENT
MAXAY DW ?
ARRAY DW 2,6,-3,10,-5,2,12,13,16,-8
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEGIN:
MOV AX,DATA
MOV DS,AX
LEA SI,ARRAY
MOV CX,10
MOV AX,[SI]
MAXCK:
ADD SI,2
CMP AX,[SI]
JGE NEXT ;最大值用 JGE ,最小值用 JLE
MOV AX,[SI]
NEXT:
LOOP MAXCK
MOV MAXAY,AX
MOV DX,AX
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN

程序流程图

07.小大写字母转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
;小大写字母转换 P91 3.16

CODE SEGMENT
ASSUME CS:CODE
BEGIN:
MOV AH,01H
INT 21H ;从键盘读入
CMP AL,'a'
JB STOP ;与a比较
CMP AL,'z'
JA STOP ;与z比较
SUB AL,20H ;转换成大写
MOV DL,AL
MOV AH,02H
INT 21H
STOP:
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN

对代码有疑问?

请点击 https://wj.qq.com/**填写问题汇总问卷,老师将在下周统一解答。


Organized by Amos © 2019

2019/06/05 18:20

评论