汇编题目,求高手解答,急~~~

把DA_BY1字节存储单元的8位二进制数分解成3个八进制数,其中高位八进制数存放在DA_BY2字节存储单元,最低位八进制数存储在DA_BY2+2字节存储单元,数据单元定义... 把DA_BY1字节存储单元的8位二进制数分解成3个八进制数,其中高位八进制数存放在DA_BY2字节存储单元,最低位八进制数存储在DA_BY2+2字节存储单元,数据单元定义如下:
DA_BY1 DB 6BH
DA_BY2 DB 3 DUP(0)

统计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 ;存放负数的个数

设数据区中有三个字节单元DA1、DA2和DA3本应存放相同的代码,但现在有一单元代码存错了。试编制一程序,找出存错代码的单元,并将错误的代码送入CODES单元中,
存放错误代码单元的偏移地址送入ADDR单元中。数据如下:
DA1 DB 34H
DA2 DB 34H
DA3 DB 43H
CODES DB 0
ADDR DB 0

请各大高手相助~~~
展开
 我来答
yelaizuozuo
2008-12-17 · TA获得超过1630个赞
知道大有可为答主
回答量:802
采纳率:0%
帮助的人:344万
展开全部
第一题
DATAS SEGMENT
ORG 1000H
DA_BY1 DB 6BH ;=153(8)
DA_BY2 DB 3 DUP(0)
DATAS ENDS

STACKS SEGMENT
DW 100 DUP(0)
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AL,DA_BY1
MOV CL,2
ROL AL,CL
MOV BL,AL
AND AL,3
MOV DA_BY2,AL
MOV DX,2
MOV SI,OFFSET DA_BY2
MOV AL,BL
AG: MOV CL,3
ROL AL,CL
PUSH AX
AND AL,7
INC SI
MOV [SI],AL
POP AX
DEC DX
JNZ AG
INT 3
MOV AH,4CH
INT 21H
CODES ENDS
END START
第二题
DATAS SEGMENT
ORG 1000H
DA_WORD DW 0FFFFH,3,5,0,0FFFBH,0FFF9H,4,0,0FFF8H
DOUNT EQU $-DA_WORD
ORG 1020H
NUM DB 0 ;存放正数的个数
ZE DB 0 ;存放0的个数
PLUS DB 0
DATAS ENDS

STACKS SEGMENT
DW 100 DUP(0)
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,DOUNT
MOV CL,1
SHR AX,CL
MOV CX,AX
MOV SI,OFFSET DA_WORD
AG: MOV AX,[SI]
CMP AX,0
JNZ NOZ
INC [ZE]
JMP NEXT
NOZ:TEST AX,8000H
JNZ ISPLUS
INC [NUM]
JMP NEXT
ISPLUS:
INC [PLUS]
NEXT:
ADD SI,2
LOOP AG
INT 3
MOV AH,4CH
INT 21H
CODES ENDS
END START
第三题
DATAS SEGMENT
ORG 1000H
DA1 DB 34H
DA2 DB 34H
DA3 DB 43H
ORG 1010H
CODES1 DB 0 ;正常信息应是43H
ADDR1 DW 0 ;正常信息应是1002H
DATAS ENDS

STACKS SEGMENT
DW 100 DUP(0)
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV BL,[DA1];设第一个是错误的
MOV [CODES1],BL
MOV [ADDR1],OFFSET DA1
MOV AL,[DA1]
CMP AL,[DA2]
JNZ A1
MOV BL,[DA3];第三个错误
MOV [CODES1],BL
MOV [ADDR1],OFFSET DA3
JMP ENDIT
A1: CMP AL,[DA3]
JNZ ENDIT
MOV BL,[DA2];第二个错误
MOV [CODES1],BL
MOV [ADDR1],OFFSET DA2
ENDIT:
INT 3
MOV AH,4CH
INT 21H
CODES ENDS
END START
24芭比公主
2008-12-17 · TA获得超过523个赞
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
不好意思,不能帮上忙~~~(看不懂)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式