题目
假设有若10个字节数存储在变量X里(2、15、16、0、12、3、5、17、19、11),统计这些数里大于10的数字个数,并存放在CNT中。
实验目的
- 熟练8086指令集;
- 熟练掌握汇编语言三种基本结构编程及上机过程;
- 熟练使用调试工具。
程序源代码(加必要的注释)
DATA SEGMENT
X DB 2,15,16,0,12,3,5,17,19,11
CNT DB ?
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV CX,10 ;CX存放比较次数
MOV DS,AX
MOV SI,0
MOV AH,0;存放大于零的个数
L:
MOV AL,X[SI];寄存器相对寻址,SI递增
CMP AL,10
JG L1;AL的内容大于10转移
JMP L2
L1:
ADD AH,1
L2:
DEC CX
ADD SI,1
CMP CX,0
JNZ L;CX不等于零转移
MOV CNT,AH;将最后的结果放入CNT
MOV AH,4CH
INT 21H
CODE ENDS
END START
编译运行
编译运行看上一篇文章
结果(用debug调试,截图看变量值)
进入debug:debug 文件名称.exe
不区分大小写
先按g(G 命令作用:执行汇编指令。),再d 076A:0(D 命令作用:显示内存区域的内容)076A是你的段地址,0就照写就好了
debug调试结果图