懂汇编的请进!

来源:百度知道 编辑:UC知道 时间:2024/05/14 00:54:06
帮小弟看下这个程序,哪里出问题了!
;====================================课后习题第5章10题即5.10
;====================================功能:统计整数1-100中不能被7整除的数字个数,应该有76个。
;====================================作者:Alen 2006.11.21

;************************************************************************************************************************

STACKSG SEGMENT STACK 'S'
DW 64 DUP('ST')
STACKSG ENDS

DATA SEGMENT
PRINT DB 'The numbers total are:','$' ;输出提示要一共不能被7整除的数的个数
COUNT DW 0 ;计数器,初始化为0
A DW 1 ;1-100数中从1开始
B DW 100 ;用于控制循环次数100
DATA ENDS
;**************************************************************************************************************************

CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACKSG

MAIN PROC FAR
MOV AX,

好复杂哦

因为我机上没汇编软件,无法调试,但粗略看了下你的程序,问题应该出现在循环控制变量B上,你程序段
INC COUNT ;余数不等于0的话,计数器就。。。
INC A
LOOP C1
应该在LOOP前加上一句:DEC B
你是要从1计算到100的,也就是说不管当前值能不能被7整除,你都应该要使循环变量自减一,但是此处并没有设置,你唯一使循环体自减的地方在
C3:
INC A
DEC B
LOOP C1
也就是说,仅仅是遇到能被7整除的数循环变量才减一,这样就导致了循环次数比你预想中多很多