小作业,求解
时间:2010-12-26
来源:互联网
1,编制下面的函数值的程序(x,y的值在-128到+127之间)
输入X,Y,输出A.
1 x>=0,y>=0
a={ 0 x,y异号
-1 x<0,y<0
2.利用串比较指令实现输入字符串与已知字符串的比较.其功能是,首先输出提示:please input the password,若其用户输入:CORRECT,则输出:OK,否则提示:Error!Input again!
3.已知以BUF为首址的字存储区中存放着n个有符号二进制数,试编写程序,将其中大于0的数依此送入以BUF1为首址的字存储区,小于0的数依此送入以BUF2为首址的字存储区中
输入X,Y,输出A.
1 x>=0,y>=0
a={ 0 x,y异号
-1 x<0,y<0
2.利用串比较指令实现输入字符串与已知字符串的比较.其功能是,首先输出提示:please input the password,若其用户输入:CORRECT,则输出:OK,否则提示:Error!Input again!
3.已知以BUF为首址的字存储区中存放着n个有符号二进制数,试编写程序,将其中大于0的数依此送入以BUF1为首址的字存储区,小于0的数依此送入以BUF2为首址的字存储区中
作者: d364644964a 发布时间: 2010-12-26
3.已知以BUF为首址的字存储区中存放着n个有符号二进制数,试编写程序,将其中大于0的数依此送入以BUF1为首址的字存储区,小于0的数依此送入以BUF2为首址的字存储区中
已知以BUF为首址的字存储区中存放着n个有符号二进制数,试编写程序,将其中大于等于0的数依次送入以BUF1为首址的字存储区中,小于0的数依次送入以BUF2为首址的存储区中。
分析:实现以上功能的算法为:将BUF区中的n个数逐次取出,判断其值是否大于等于0,若是,则送该数到BUF1区,否则送该数到BUF2区,如此重复,直至n个数处理完毕。由此可见,实现以上算法的程序应该是一循环程序,其循环次数为n。
寄存器分配如下:
BX:BUF存储区地址指针,初值指向BUF
SI:正数存储区地址指针,初值指向BUF1
DI:负数存储区地址指针,初指指向BUF2
CX:循环计数器,初值为BUF区中数据个数n
AX:用来暂时存放判断正负属性的数
源程序如下:
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
DATA SEGMENT
BUF DW –5,100,32767,-32768
DW –1,15,-4,-9,200,0,300
N = ($-BUF)/2
BUF1 DW N DUP(?)
BUF2 DW N DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN:MOV AX, DATA
MOV DS, AX
LEA BX, BUF
LEA SI, BUF1
LEA DI, BUF2
MOV CX, N
LOPA:MOV AX,[BX]
CMP AX,0
JGE L1
MOV [DI],AX
ADD DI,2
JMP NEXT
L1:MOV [SI],AX
ADD SI,2
NEXT:ADD BX,2
DEC CX
JNE LOPA
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
已知以BUF为首址的字存储区中存放着n个有符号二进制数,试编写程序,将其中大于等于0的数依次送入以BUF1为首址的字存储区中,小于0的数依次送入以BUF2为首址的存储区中。
分析:实现以上功能的算法为:将BUF区中的n个数逐次取出,判断其值是否大于等于0,若是,则送该数到BUF1区,否则送该数到BUF2区,如此重复,直至n个数处理完毕。由此可见,实现以上算法的程序应该是一循环程序,其循环次数为n。
寄存器分配如下:
BX:BUF存储区地址指针,初值指向BUF
SI:正数存储区地址指针,初值指向BUF1
DI:负数存储区地址指针,初指指向BUF2
CX:循环计数器,初值为BUF区中数据个数n
AX:用来暂时存放判断正负属性的数
源程序如下:
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
DATA SEGMENT
BUF DW –5,100,32767,-32768
DW –1,15,-4,-9,200,0,300
N = ($-BUF)/2
BUF1 DW N DUP(?)
BUF2 DW N DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN:MOV AX, DATA
MOV DS, AX
LEA BX, BUF
LEA SI, BUF1
LEA DI, BUF2
MOV CX, N
LOPA:MOV AX,[BX]
CMP AX,0
JGE L1
MOV [DI],AX
ADD DI,2
JMP NEXT
L1:MOV [SI],AX
ADD SI,2
NEXT:ADD BX,2
DEC CX
JNE LOPA
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
作者: c7752379 发布时间: 2010-12-26
第一题:用大脑运行了一下,不知道对不对。楼主可以参考一下。
最主要是一定要自已动手打一下,不然就是在拿自已的前途开玩笑噢
.data
st db 2dup(?)
.code
start:
mov dx ,offset st
mov ah09
int21h
mov al,st
mov bl,[st+1]
add al,bl
mov dl,al
mov ah,02
int 21h
end start
最主要是一定要自已动手打一下,不然就是在拿自已的前途开玩笑噢
.data
st db 2dup(?)
.code
start:
mov dx ,offset st
mov ah09
int21h
mov al,st
mov bl,[st+1]
add al,bl
mov dl,al
mov ah,02
int 21h
end start
作者: flowerjack 发布时间: 2010-12-26
引用 1 楼 c7752379 的回复:
分析:实现以上功能的算法为:将BUF区中的n个数逐次取出,判断其值是否大于等于0,若是,则送该数到BUF1区,否则送该数到BUF2区,如此重复,直至n个数处理完毕。由此可见,实现以上算法的程序应该是一循环程序,其循环次数为n。
寄存器分配如下:
BX:BUF存储区地址指针,初值指向BUF
SI:正数存储区地址指针,初值指向BUF1
DI:负数存储区地址指针,初指指向BUF2
CX:循环计数器,初值为BUF区中数据个数n
AX:用来暂时存放判断正负属性的数
源程序如下:
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
DATA SEGMENT
BUF DW –5,100,32767,-32768
DW –1,15,-4,-9,200,0,300
N = ($-BUF)/2
BUF1 DW N DUP(?)
BUF2 DW N DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN:MOV AX, DATA
MOV DS, AX
LEA BX, BUF
LEA SI, BUF1
LEA DI, BUF2
MOV CX, N
LOPA:MOV AX,[BX]
CMP AX,0
JGE L1
MOV [DI],AX
ADD DI,2
JMP NEXT
L1:MOV [SI],AX
ADD SI,2
NEXT:ADD BX,2
DEC CX
JNE LOPA
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
真够快的。。。。牛!
分析:实现以上功能的算法为:将BUF区中的n个数逐次取出,判断其值是否大于等于0,若是,则送该数到BUF1区,否则送该数到BUF2区,如此重复,直至n个数处理完毕。由此可见,实现以上算法的程序应该是一循环程序,其循环次数为n。
寄存器分配如下:
BX:BUF存储区地址指针,初值指向BUF
SI:正数存储区地址指针,初值指向BUF1
DI:负数存储区地址指针,初指指向BUF2
CX:循环计数器,初值为BUF区中数据个数n
AX:用来暂时存放判断正负属性的数
源程序如下:
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
DATA SEGMENT
BUF DW –5,100,32767,-32768
DW –1,15,-4,-9,200,0,300
N = ($-BUF)/2
BUF1 DW N DUP(?)
BUF2 DW N DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN:MOV AX, DATA
MOV DS, AX
LEA BX, BUF
LEA SI, BUF1
LEA DI, BUF2
MOV CX, N
LOPA:MOV AX,[BX]
CMP AX,0
JGE L1
MOV [DI],AX
ADD DI,2
JMP NEXT
L1:MOV [SI],AX
ADD SI,2
NEXT:ADD BX,2
DEC CX
JNE LOPA
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
真够快的。。。。牛!

作者: flowerjack 发布时间: 2010-12-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28