
跪求答案啊,谢谢各位了:以完整的汇编语言源程序结构编写实现以下要求的程序段
(2)从键盘接收字符‘Hello,my friends!’;
(3)将BUFFER中的字符串按从左到右的方向传送到DATA中;(4)在DATA中查找有无‘!’(!的ASCII码=21H)。若找到‘!’,则将其所在单元的偏移地址送BX,将查找次数送DX;若没有找到则返回DOS。 展开
找工作焦头烂额之际复习一下,剩下的靠你自己吧= =
DATA SEGMENT
MSG DB 'Hello,my friends!','$'
DATA DB 20 DUP('0')
BUFFER DB 20 DUP('0')
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX, DATA
MOV DS, AX
LEA SI,BUFFER
LEA DX, MSG
MOV AH, 9 ;输出字符组MSG
INT 21H
MOV AH,2 ;置光标
MOV DH,1
MOV DL,0
INT 10H
MOV CX,17 ;设置输入数据循环次数,上面那句话17个字符
MOV SI,0 ;SI作为数据指针置0
INPUT: ;通过17次循环从键盘读入字符
MOV AH, 1
INT 21H
MOV [BUFFER+SI], AL
INC SI
DEC CX
CMP CX,0
JNZ INPUT ;不为0则跳转
--------------------------------------------
输入部分完成,接下来是数据转移到DATA,用17次循环,注意寄存器清零
MOV AL,[BUFFER+SI]
MOV [DATA+NUM],AL ;NUM自己定义吧
INC SI
ADD NUM,1
查找的话用CMP咯,后面的简单了。能帮的就这么多,睡觉去
P.S.对指令不熟悉的话用这个吧,不会就查,越用越熟。调试的话用个人觉得emu8086犀利

2023-06-12 广告