汇编 实验报告5 字符串输入输出

;实验报告内容,输入一个字符串,去掉数字,输出ASSUME DS:DATA,CS,CDOE,SS,STACK
DATA SEGMENT
    MAXLEN DB 15
    INPUTLEN DB 0
    STR1 DB 15 DUP(0)
    STR2 DB 15 DUP(0)
DATA ENDS
STACK1 SEGMENT STACK
    DW 40H DUP(0)
STACK1 ENDS
CODE SEGMENT
    START:
    MOV AX,DATA                   ;INITIAL THE DS,SS
    MOV DS,AX
    MOV AX,STACK1
    MOV SS,AX

    LEA DX,MAXLEN                  ;INPUT THE STRING
    MOV AH,0AH
    INT 21H

    CALL NEWLINE
                                   ;SET THE LOOP
    MOV AL,INPUTLEN
    MOV AH,0
    MOV CX,AX
    MOV SI,0
    MOV DI,0
    LOOP1:
    MOV AL,STR1[SI]
    CMP AL,30H                     ;CMP
    JZ BREAK
    JC OK

    CMP AL,39H
    JZ BREAK
    JNC OK
    JMP BREAK

    OK:
    MOV STR2[DI],AL                 ;TRANSFER STR1 TO STR2
    INC DI

    BREAK:
    INC SI
    LOOP LOOP1

    MOV AL,24H                      ;ADD THE ‘$‘
    MOV STR2[DI],AL

    MOV AL,0

    LEA DX,STR2
    MOV AH,09H
    INT 21H

    MOV AH,4CH
    INT 21H
NEWLINE PROC
    MOV AH,02H
    MOV DL,0DH
    INT 21H
    MOV AH,02H
    MOV DL,0AH
    INT 21H
    RET
NEWLINE ENDP
CODE ENDS
END START

  

时间: 2024-12-12 04:15:43

汇编 实验报告5 字符串输入输出的相关文章

汇编实验报告三

练习1是用MASM做的,一开始edit没办法打开,但是MASM练习2做不了,需要注册 结果为36(这个没法截图,按任意键就退出了) 改后的: 结果变为27 (3) Cx =0016 , ds = 0760 , cs = 0070 = ds + 10H 2.用d命令查看 的确如此 反汇编 P指令后AX寄存器的值变了,但我不懂为什么会变,p下面的数字是第几行开始那个程序段(我猜的) 疑问: 我把2后面加H结果不变,但是把30H的H去掉结果就变成了一个类似于X的符号,里面应该都是16进制,反汇编了一下

汇编实验报告五

(5) 一开始写的是两个循环的,结果发现C段里面没相加结果,反汇编发现,第二个循环部分的代码并没有执行,怎么改都不行,数量不多,就换成了直接一个一个入栈,结果那部分代码也不执行,我弄了一个多小时也找不出问题ORZ 后来又换了一种方法,才可以. 不可行1号:(mov ax,4c00h int21h 后来发现了,改了也不行) 不可行2号: 不可行3号: -- 可行的: (6) 1.感觉无论是什么段,都是我们自己定义的,本质就是一个内存空间,然后我们给他定义一个功能,就像ax寄存器一样,我们可以赋值可

微机接口技术与汇编语言上机实验报告_汇编初步(intel8086)

实验环境:intel x386 一.要求:将3000H单元开始置数为00H-0FH SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE, SS:SSTACK START: PUSH DS XOR AX, AX MOV DS, AX MOV SI, 3000H MOV CX, 16 AA1: MOV [SI], AL INC SI INC AL LOOP AA1 ;CX == 0? NEXT():AA1

实验报告:统计字符串中子字符串出现的次数

实验报告 源程序: 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 int cntstring(char *source,char *substr); 5 void main() 6 { 7 char str1[50],str2[20]; //str1 为主字符串,str2 为子字符串 8 cout<<"input source string:"; 9 cin.get

汇编实验:彩色字符中间位置显示字符串

汇编实验九:在屏幕中间位置显示三行彩色字符串 80*25彩色字符模式显示缓冲区在B8000H到BFFFFH位置.一行80个字符号,160个字节.其中每个字的低位存储ASC2码,高位存储字符颜色属性.属性格式: 7 6 5 4 3 2 1 0 BL R G B I R G B7闪烁: 6.5.4背景: 3高亮: 2.1.0前景 0 1 0 0 1 0 1 0 4ah 0 1 0 0 0 1 0 1 45h 0 0 1 0 0 0 0 1 21h 1 assume cs:codes,ds:dates

Linux 基础入门(新版)”实验报告一~十二

实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& 2.基本概念及操作 认真看过这篇linux系统简介文章,对于这样一个免费.高效的操作系统有了一个初步的认识.希望能在本学期对于linux操作系统有很好的认识和操作,使用. 同时,对于新认识的一些历史中开发和修复各个操作系统的前辈表示深深地敬佩. 2. 基本概念及操作 主要过程: (1)实验楼环境介绍 (2

PC平台逆向破解实验报告(待补充)

PC平台逆向破解实验报告(待补充) 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode. 实践内容 手工修改可执行文件,改变程序执行流程,直接跳转到getShell

词法分析实验报告

词法分析实验报告 一.        实验目的 编制一个词法分析器,通过该词法分析程序的设计实例,进一步了解词法分析程序构造的一些细节. 二.        实验内容和要求 实验内容: 对字符串表示的源程序,从左到右进行扫描和分解.根据词法规则,识别出一个一个具有独立意义的单词符号,以供语法分析之用,若发现词法错误,则返回出错信息. 实验要求: 输入:源程序字符串 输出:二元组(种别,单词本身) 待分析语言的词法规则 三. 实验方法.步骤及结果测试 源程序名:压缩包文件(rar或zip)中源程序

数据结构与算法 第四次实验报告 图

数据结构与算法 第四次实验报告 姓名:许恺 学号:2014011329 班级:计算机14-1     中国石油大学(北京)计算机科学与技术系 1.图的定义,文件为"Graph.h" #ifndef GRAPH_H//定义头文件 #define GRAPH_H #include<string>//引入标准库中的头文件 using namespace std; const int MaxSize=12; struct ArcNode//定义边表结点 { int adjvex;/