汇编程序求助,请问大家怎么编怎么修改呀?
时间:2011-04-21
来源:互联网
试编制一个程序,统计DA_WORD数据区中正数、0、负数的个数。数据定义如下:
DA_WORD DW -1 3 5 0 -5 -7 4 0 -8
COUNT EQU $ -DA_WORD
NUM DB 0 ;存放正数的个数
DB 0 ;存放0的个数
DB 0 ; 存放负数的个数
下面是我编的
LOP: MOV AX,[BX]
CMP AX,0
JE ZERO
JL LESS
INC NUM
ZERO: INC NUM+1
JMP NEXT
LESS: INC NUM+2
NEXT: INC BX
LOOP LOP
DA_WORD DW -1 3 5 0 -5 -7 4 0 -8
COUNT EQU $ -DA_WORD
NUM DB 0 ;存放正数的个数
DB 0 ;存放0的个数
DB 0 ; 存放负数的个数
下面是我编的
LOP: MOV AX,[BX]
CMP AX,0
JE ZERO
JL LESS
INC NUM
ZERO: INC NUM+1
JMP NEXT
LESS: INC NUM+2
NEXT: INC BX
LOOP LOP
作者: blueshine1 发布时间: 2011-04-21
INC NUM 指令后应该是 JMP NEXT 吧,不然就会再对 0 累计了。另外,完整的代码要初始化好 ds 、bx 和 cx 等使用到的寄存器。
作者: zara 发布时间: 2011-04-21
引用 1 楼 zara 的回复:
INC NUM 指令后应该是 JMP NEXT 吧,不然就会再对 0 累计了。另外,完整的代码要初始化好 ds 、bx 和 cx 等使用到的寄存器。
INC NUM 指令后应该是 JMP NEXT 吧,不然就会再对 0 累计了。另外,完整的代码要初始化好 ds 、bx 和 cx 等使用到的寄存器。
但是编译出来有许多错误,不知道哪里错了,请指教……
作者: blueshine1 发布时间: 2011-04-21
有错误的话,不都提示错误所在的行号,即具体的错误缘由的吗?当然了,不能是你上面这样就去编译;首先要有完整的源程序的结构。
作者: zara 发布时间: 2011-04-21
1. LZ你还真是够聪明啊,写个核心就了事了啊,让别人给你写外围.
2. 代码
Assembly code
2. 代码
Assembly code
.model tiny .code main proc far start: xor ax,ax push ds push ax mov bx,offset DA_WORD mov cx,count LOP: MOV AX,cs:[BX] CMP AX,0 JE ZERO JL LESS INC cs:[NUM] jmp short NEXT ZERO: INC cs:[NUM+1] JMP NEXT LESS: INC cs:[NUM+2] NEXT: INC BX INC BX LOOP LOP ret main endp org 0100h DA_WORD DW -1,3,5,0,-5,-7,4,0,-8 COUNT EQU ($ - DA_WORD) / 2 NUM DB 0 DB 0 DB 0 end start
作者: va_zaixuexi 发布时间: 2011-04-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28