一个简单程序,麻烦大家帮看一下。

NOldkiller 2003-05-28 09:22:15
DATA SEGMENT
DA1 DB ‘ABCD’
COUNT EQU 4
DA2 DB COUNT DUP(0)
DATA ENDS
STACK SEGMENT
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
BEGIN:MOV AX,DATA
MOV DS,AX
LEA SI,DA1
LEA DI,DA2
MOV CX,COUNT
LOP1: MOV AL,[ SI ]
MOV DL,0
LOP2: CMP AL,0
JZ NEXT
SHR AL,1
JNC EE
INC DL
EE: JMP LOP2
NEXT: MOV [ DI ],DL
INC SI
INC DI
LOOP LOP1
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
问题:A.程序完成的操作是(1)
B.程序运行结束后,DL中的内容是(2)
C.程序运行结束后,DA2+1单元中的内容是(3)
D.程序运行结束后,DA2+2单元中的内容是(4)

三、编程题(15分)
用8086汇编语言编写代码段将SOURCE处的字符串中的数字字符删除,字符串以0为结束标志。并画出程序流程图。
...全文
48 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
BraveHeart2222 2003-05-29
  • 打赏
  • 举报
回复

;本程序采用的方法是:逐个判断字符串中字符,若是数字字符则
;后面的字符往前移覆盖掉它
DATA SEGMENT
SOURCE DB ‘xxxxxxx’
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA SI,SOURCE
LEA DI,SOURCE
NEXT:
MOV AL,[SI]
CMP AL,0
JZ EXIT
CMP AL,'0' 
JB AA  ;不是数字字符 
CMP AL,'9'
JA AA  ;不是数字字符 
INC SI ;是数字字符 
JMP NEXT
AA:
MOV [DI],AL
INC SI
    INC DI 
JMP NEXT
EXIT:
MOV [DI],0 ;结束符
MOV AH,4CH
INT 21H
CODE ENDS
END START
BraveHeart2222 2003-05-28
  • 打赏
  • 举报
回复
A、统计DA1中位是1的个数
B、DL中的内容是:3
C、DA2+1为:3
D、DA2+2为:2

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧