- 掌握多路分支
if...elif...else程序结构和设计方法. - 进一步熟悉 DEBUG 的使用方法.
- 掌握汇编语言程序的编辑,汇编,连接以及调试过程.
编写程序,将一个包含有
- 硬件环境: AMD Ryzen 9.
- 软件环境: Windows XP Pro SP3 (in VMware Workstation 16 Pro).
- 编辑程序: Visual Studio Code 1.62.3.
- 调试程序:
DEBUG.EXE. - 编译程序:
MASM.EXE. - 连接程序:
LINK.EXE.
- 编译和连接
- 用单步方式运行程序
debug 3-5.exe-t否.
使用额外的寄存器和 SUB 替代 CMP.
DSEG SEGMENT PARA PUBLIC'DSEG'
M DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
P DB 20 DUP(?)
N DB 20 DUP(?)
DSEG ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
LEA SI,P
LEA DI,N
LEA BX,M
XOR AX,AX
XOR DX,DX
MOV CX,20
L1: MOV AL,[BX]
TEST AL,80H
JZ L2
MOV [DI],AL
INC BX
INC DI
INC DH
JMP L3
L2: MOV [SI],AL
INC BX
INC SI
INC DL
L3: LOOP L1
MOV CX,2
L5: MOV BL,DL
SHR DL,1
SHR DL,1
SHR DL,1
SHR DL,1
AND DL,0FH
MOV AX,DL
SUB AX,10
JB L4
ADD DL,7
L4: ADD DL,30H
MOV AH,2
INT 21H
MOV DL,BL
AND DL,0FH
MOV AX,DL
SUB AX,10
JB L6
ADD DL,7
L6: ADD DL,30H
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,DH
LOOP L5
MOV AH,4CH
INT 21H
CODE ENDS
END START- 进一步掌握多路分支
if elif else程序结构和设计方法. - 进一步熟悉 DEBUG 的使用方法.
接收键盘输入字符,判别该字符是否为字母、数字或非字母也非数字类的字符。若是数字, 则显示“DIGIT”;若是字母,显示“LETTER”;若是非数字也非字母类的字符,则显示“OTHER”。
- 硬件环境: AMD Ryzen 9.
- 软件环境: Windows XP Pro SP3 (in VMware Workstation 16 Pro).
- 编辑程序: Visual Studio Code 1.62.3.
- 调试程序:
DEBUG.EXE. - 编译程序:
MASM.EXE. - 连接程序:
LINK.EXE.
- 编译和连接
- 用单步方式运行程序
debug 3-7.exe-t由于源程序中对大小写字母输入的处理是分离的,直接增加数据 UPPER LOWER,并更改 LEA 语句即可.
DATA SEGMENT
DIGIT DB "DIGIT",0AH,0DH
UPPER DB "UPPER",0AH,0DH
LOWER DB "LOWER",0AH,0DH
OTHER DB "OTHER",0AH,0DH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,07
INT 21H
CMP AL,30H
JB AA1
CMP AL,39H
JA AA1
MOV CX,7
LEA SI,DIGIT
AA0: MOV DL,[SI]
MOV AH,2
INT 21H
INC SI
LOOP AA0
JMP BB
AA1: CMP AL,41H
JB AA3
CMP AL,5AH
JA AA2
LEA SI,UPPER
MOV CX,8
AA4: MOV DL,[SI]
MOV AH,2
INT 21H
INC SI
LOOP AA4
JMP BB
AA2: CMP AL,61H
JB AA3
CMP AL,7AH
JA AA3
LEA SI,LOWER
MOV CX,8
AA5: MOV DL,[SI]
MOV AH,2
INT 21H
INC SI
LOOP AA5
JMP BB
AA3: LEA SI,OTHER
MOV CX,7
AA6: MOV DL,[SI]
MOV AH,2
INT 21H
INC SI
LOOP AA6
BB: MOV AH,4CH
INT 21H
CODE ENDS
END START循环结构程序设计是使用循环控制类指令,实现对某程序段重复执行一定的次数. 通过本次实验,使学生初步掌握单重/多重循环程序的设计方法,为编制较大的程序和阅读较复杂程序打下基础.
设有 COURSE1 中(设每门课的成绩满分为 NUM1 中)的源程序.
- 硬件环境: AMD Ryzen 9.
- 软件环境: Windows XP Pro SP3 (in VMware Workstation 16 Pro).
- 编辑程序: Visual Studio Code 1.62.3.
- 调试程序:
DEBUG.EXE. - 编译程序:
MASM.EXE. - 连接程序:
LINK.EXE.
- 编译和连接
- 用单步方式运行程序
debug 4-6.exe-t- 检查并记录各寄存器和存储单元内容的变化
(嵌套)循环.
无. 无需排除.
进一步掌握循环结构程序设计是使用循环控制类指令.
将一个
- 硬件环境: AMD Ryzen 9.
- 软件环境: Windows XP Pro SP3 (in VMware Workstation 16 Pro).
- 编辑程序: Visual Studio Code 1.62.3.
- 调试程序:
DEBUG.EXE. - 编译程序:
MASM.EXE. - 连接程序:
LINK.EXE.
- 编译和连接
- 用单步方式运行程序
debug 4-7.exe-t- 检查并记录各寄存器和存储单元内容的变化



