回 帖 发 新 帖 刷新版面

主题:[讨论][求助]我的‘处女作’错误一大堆啊??请各位指正

总觉得有些东西没有搞懂,通过这个程序,希望大家能够帮帮我指出我的不足,让我知道到底是什么地方的问题。感激不尽啊!!




DATA   SEGMENT    USE16
FUB    DB'  THE  ANSWER OF THE (225+226-447)/(358-356)=? $'
A1     DW         0
B1     DW         0
CTRF   DB   0DH,0AH,'$'
DATA   ENDS
STACK  SEGMENT    USE16
       DB 200 DUP(0)
STACK  ENDS
CODE   SEGMENT    USE16
       ASSUME  CS:CODE,SS:STACK,DS:DATA
START: MOV   AX,DATA
       MOV   DS,AX
       MOV   DX,OFFSET FUB   ;输出字符串FUB
       MOV   AH,9
       INT   21H
       LEA   DX,CTRF         ;输出回车换行
       MOV   AH,9
       INT   21H
       MOV   AX,225          ;计算(225+226-447)/(358-356)=?
       ADD   AX,226
       SUB   AX,447
       MOV   SI,358
       SUB   SI,356
       MOV   DX,0
       DIV   SI
       MOV   A1,AX           ;商传给A1
       MOV   B1,DX           ;余数传给B1
       MOV   DL,A1           ;输出商
       MOV   AH,2            
       INT   21H
       MOV   DL,B1           ;输出余数         
       MOV   AH,2
       INT   21H
       MOV   AH,4CH
       INT   21H
CODE   ENDS
       END   START

回复列表 (共2个回复)

沙发

MOV   DL,A1           ;输出商

MOV   DL,B1           ;输出余数  

A1和b1是字,dl是字节,不匹配
你编译的时候后面别带注释,你的“;”错了

板凳

还有  计算的ax为ASCII值
       MOV   AX,225         
       ADD   AX,226
       ADC   DX,0
       SUB   AX,447
       SBB   DX,0
       MOV   SI,358
       SUB   SI,356
       OR    AX,30H
       OR    SI,30H
。。。。。
。。。。。。

       MOV   A1,AX         
       MOV   B1,DX
       OR    A1,30H
       OR    B1,30H


最终程序如:
DATA   SEGMENT    USE16
FUB    DB'  THE  ANSWER OF THE (225+226-447)/(358-356)=? $'
A1     DW         0
B1     DW         0
CTRF   DB   0DH,0AH,'$'
DATA   ENDS
STACK  SEGMENT    USE16
       DB 200 DUP(0)
STACK  ENDS
CODE   SEGMENT    USE16
       ASSUME  CS:CODE,SS:STACK,DS:DATA
START: MOV   AX,DATA
       MOV   DS,AX
       MOV   DX,OFFSET FUB   ;输出字符串FUB
       MOV   AH,9
       INT   21H
       LEA   DX,CTRF         ;输出回车换行
       MOV   AH,9
       INT   21H
       MOV   AX,225         ;计算(225+226-447)/(358-356)=?
       ADD   AX,226
       ADC   DX,0
       SUB   AX,447
       OR    AX,30H
       SBB   DX,0
       MOV   SI,358
       SUB   SI,356
       OR    SI,30H
       MOV   DX,0
       DIV   SI
       MOV   A1,AX           ;商传给A1
       MOV   B1,DX
       OR    A1,30H
       OR    B1,30H           ;余数传给B1
       MOV   DX,A1          ;输出商
       MOV   AH,2            
       INT   21H
       MOV   DX,B1          ;输出余数         
       MOV   AH,2
       INT   21H
       MOV   AH,4CH
       INT   21H
CODE   ENDS
       END   START


我来回复

您尚未登录,请登录后再回复。点此登录或注册