鱼C论坛

 找回密码
 立即注册
查看: 2601|回复: 9

文件生成小问题

[复制链接]
发表于 2013-7-19 21:55:09 | 显示全部楼层 |阅读模式
1鱼币
assume  cs:code ds:date
date segment
db 20 dup(0)
date ends
code segment
start: mov ax,date
  mov ss,ax
  mov sp,20
  mov ax,0
  push ax
  popf
  mov ax,0fff0h
  add ax,0010h
  pushf
  pop ax
  and al,11000101b
  and ah,00001000b
  
  mov ax,4c00h
  int 21h
code ends
end start


问题
TT截图未命名.jpg

最佳答案

查看完整内容

MASM汇编错误信息说明 1、test.asm(54): error A2000: Block nesting error 说明:此错误信息通常见于一个段定义起始段名和末尾段名不一致。 修改:检查段定义,使段名前后保持一致。 2、test.asm(5): error A2005: Symbol is multidefined : DATA 说明:此错误信息提示DATA符号重复定义了。 修改:将其中一个符号DATA重新设置。 3、test.asm(7): error A2009: Symbol not defined: B9H 说明:此错误信息为test.asm中第7行 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-19 21:55:10 | 显示全部楼层
本帖最后由 遗忘c年华 于 2013-7-20 23:39 编辑

MASM汇编错误信息说明
1、test.asm(54): error A2000: Block nesting error
说明:此错误信息通常见于一个段定义起始段名和末尾段名不一致。
修改:检查段定义,使段名前后保持一致。
2、test.asm(5): error A2005: Symbol is multidefined : DATA
说明:此错误信息提示DATA符号重复定义了。
修改:将其中一个符号DATA重新设置。
3、test.asm(7): error A2009: Symbol not defined: B9H
说明:此错误信息为test.asm中第7行指令出错,查看该指令,源操作数为十六进制数B9H。按规定以字母开始的十六进制数,应在其前面加上数字0以便汇编程序区分常数和符号。另一种出错的可能原因是程序中使用的符号变量没有定义。
修改:以0B9H取代B9H;使用伪指令定义变量。
4、test.asm(11): error A2009: Symbol not defined: NO
说明:test.asm中第11行指令JLE no-count,符号中使用了中折线,中折线在汇编中是作为减号,因此,汇编提示标号NO没有定义。注意,汇编语言规定符号中可以使用下划线。
修改:将no-count改为no_count。
5、test.asm(28): error A2010: Syntax error
说明:此错误信息提示源程序中第28行的指令语句的语法与任何可识别的语法不匹配,出错。
修改:按照汇编指令的规定格式重新编写。
6、test.asm(2): error A2018: Operand must be register: DX
说明:指定的寄存器不是指令或伪指令所要求的。如:ASSUME DX : DATA
修改:查看汇编指令的规定格式。
7、test.asm(16): error A2028: Operator expected
说明:汇编程序需要的是操作符,得到的却是其它内容。test.asm中第16行MOV DX OFFSET BUF2,显然是两操作数中间缺少“,”符号导致出错。
修改:两操作数之间用“,”号分隔。
8、test.asm(47): error A2029: Division by 0 or overflow
说明:给出一个用零作除数的表达式或溢出。test.asm中第47行指令AND AL, 0010 0000数据溢出,这是因为,汇编程序默认数制为十进制,因而该指令中的源操作数超出范围。
修改:若欲输入的是二进制数,在该数后加b,说明为二进制数。
9、test.asm(8): error A2048: Must be index or base register
说明:指令需要基址或变址寄存器,源程序中给出的是其它寄存器。test.asm中第8行指令MOV AL, [SI+DX],显然,DX寄存器应为BX寄存器。
修改:按寻址方式规定修改。
10、test.asm(6): error A2049: Illegal use of register
说明:此错误信息为test.asm中第6行出错,查看该指令,是由于将两操作数之间的“,”号错为“.”号而出错。另外一种情况,如MOV AL, DL+20H,则是源操作数为非法格式。
修改:按照汇编指令的规定格式重新编写。
11、test.asm(48): error A2050: Value out of range
说明:test.asm中第48行指令AND AL, 0001 0000出错。因为汇编程序默认数制为十进制,因此,该指令源操作数为16位立即数,不能送入8位寄存器。
修改:将8位寄存器AL改为16位寄存器,如AX。
12、test.asm(10): error A2052: Improper operand type
说明:非法的操作数类型。如test.asm中第10行指令MOV RESULT, [SI]。汇编语言规定两个操作数不能同时为存储器操作数。
修改:先将源操作数传送到寄存器,再由寄存器传送到另一个存储单元。
13、test.asm(3):error A2053:Jump out of range by 82 byte(s)
说明:此错误信息为源程序test.asm中第3行的转移指令指定的转移超出允许范围。
修改:可在该转移指令与目标指令中增加一条无条件转移指令。
14、test.asm(21): error A2056: Immediate mode illegal
说明:test.asm中第21行指令IDIV 8错误,操作数不能是立即数。
修改:在该指令前增加一条传送指令,将该操作数8送入一个8位寄存器存放,如BL,则该指令可修改为IDIV BL。
15、test.asm(41): error A2062: Missing or unreachable CS
说明:这是由于缺乏段寄存器说明ASSUME伪指令导致。
修改:在代码段中增加段寄存器说明ASSUME伪指令。
16、test.asm(26): error A2105: Expected: comma
说明:双操作数指令中缺少逗号。
修改:在该指令的两个操作数中加上逗号。
17、test.asm(46): error A2105: Expected: instruction or directive
说明:通常是指令助记符输入错误。
修改:检查指令助记符。
18、test.asm(9): warning A4001: Extra characters on line
说明:当一行上已接受了定义指令说明的足够信息,而又出现多余的字符,汇编程序提示出错。一般多由于指令中出现多余或非法的符号。
修改:仔细检查该指令。
19、test.asm(13): warning A4016: Reserved word used as symbol: AAA
说明:企图非法使用一个汇编程序的保留字,AAA是汇编的保留字(指令助记符),不能作为符号使用。
修改:重新设置符号名。
20、test.asm(33): warning A4031: Operand types must match
说明:test.asm中第33行指令MOV AX, RESULT,其中变量RESULT是用DB定义的,其属性为字节,因而与16位寄存器AX不匹配。另一种情况是两个操作数分别为8位寄存器和18位寄存器,同样也不匹配。
修改:选用相应位数的寄存器保证两个操作数为相同位数。
21、test.asm(19): warning A4057: Illegal size for operand
说明:操作数的长度非法,如PUSH AL。
修改:改用指令规定位数的寄存器,如PUSH AX。
22、test.asm(55): warning A4085: End of file, no END directive
说明:源程序中缺乏模块结束伪指令END。
修改:整个源程序最后增加模块结束伪指令END。
23、test.asm(32): warning A4101: Missing data; zero assumed
说明:此错误信息提示源程序中第32行的指令少了操作数,即单操作数指令缺少操作数或双操作数指令缺少一个操作数。
修改:给指令加上适当的操作数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-19 23:51:42 | 显示全部楼层
不会。你好厉害哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-20 00:06:15 | 显示全部楼层
文件是如何生成的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-20 00:08:01 | 显示全部楼层
也不晓得你是不是有时间教下我!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-20 10:43:42 | 显示全部楼层
:@求解啊啊啊啊啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-20 11:07:06 | 显示全部楼层
assume cs:code ds:date
这里是不是应该是 assume cs:code, ds:date 有逗号啊
我也不是很懂
你试试吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-20 21:52:22 From FishC Mobile | 显示全部楼层
先看看,不着急,新手基本都是粗心大意的问题而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-20 23:26:31 | 显示全部楼层
本帖最后由 遗忘c年华 于 2013-7-20 23:30 编辑

我查下,最好自己用注释排错。
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-20 23:28:18 | 显示全部楼层
本帖最后由 遗忘c年华 于 2013-7-20 23:30 编辑

继续查查..我也不太懂


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 04:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表