汇编基本问题,编写出现错误不知如何改正,急求帮助!
代码如下:DATASEGMEDNTADB40HBDB30HCDB20HDDB10HSDB?DATAENDSCODESEGMENTASSUMECS:CODESTART:MO...
代码如下:
DATA SEGMEDNT A DB 40HB DB 30HC DB 20HD DB 10HS DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODESTART:MOV AX,A IMUL B MOV BX,C ADD BX,D IDIV BX MOV BX,AX MOV AX,A SUB AX,B MOV CX,5 IMUL CX MOV CX,2 IDIV CX MOV CX,AX MOV AX,C MOV DX,D IDIV DX ADD AX,BX ADD AX,CX MOV S,AX
CODE ENDS END START
错误如图
都是基本错误,但是我也不知道怎么该,第一次上机 拜托大家了。题目如下:
题目:编写完整的汇编语言源程序,计算下面的表达式:
S=(A*B)/(C+D)+5(A-B)/2+C/D
设A、B、C、D、S均为带符号字节数,计算过程中不考虑溢出,放弃余数。
数据定义如下,可以直接使用:
A DB40H
B DB30H
C DB20H
D DB10H
S DB? 展开
DATA SEGMEDNT A DB 40HB DB 30HC DB 20HD DB 10HS DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODESTART:MOV AX,A IMUL B MOV BX,C ADD BX,D IDIV BX MOV BX,AX MOV AX,A SUB AX,B MOV CX,5 IMUL CX MOV CX,2 IDIV CX MOV CX,AX MOV AX,C MOV DX,D IDIV DX ADD AX,BX ADD AX,CX MOV S,AX
CODE ENDS END START
错误如图
都是基本错误,但是我也不知道怎么该,第一次上机 拜托大家了。题目如下:
题目:编写完整的汇编语言源程序,计算下面的表达式:
S=(A*B)/(C+D)+5(A-B)/2+C/D
设A、B、C、D、S均为带符号字节数,计算过程中不考虑溢出,放弃余数。
数据定义如下,可以直接使用:
A DB40H
B DB30H
C DB20H
D DB10H
S DB? 展开
1个回答
展开全部
DATA SEGMEDNT ???
DATA SEGMENT
A DB 40H
B DB 30H
C DB 20H
D DB 10H
S DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AX,A
IMUL B
MOV BX,C
ADD BX,D
IDIV BX
MOV BX,AX
MOV AX,A
SUB AX,B
MOV CX,5
IMUL CX
MOV CX,2
IDIV CX
MOV CX,AX
MOV AX,C
MOV DX,D
IDIV DX
ADD AX,BX
ADD AX,CX
MOV S,AX
CODE ENDS
END START
后面,还有错。
因为:
DB 生成的数据,是字节。
寄存器,就应该用 AL、...等八位的,不能用 AX、...。
DATA SEGMENT
A DB 40H
B DB 30H
C DB 20H
D DB 10H
S DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AX,A
IMUL B
MOV BX,C
ADD BX,D
IDIV BX
MOV BX,AX
MOV AX,A
SUB AX,B
MOV CX,5
IMUL CX
MOV CX,2
IDIV CX
MOV CX,AX
MOV AX,C
MOV DX,D
IDIV DX
ADD AX,BX
ADD AX,CX
MOV S,AX
CODE ENDS
END START
后面,还有错。
因为:
DB 生成的数据,是字节。
寄存器,就应该用 AL、...等八位的,不能用 AX、...。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询