博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汇编语言-实验9
阅读量:3968 次
发布时间:2019-05-24

本文共 2694 字,大约阅读时间需要 8 分钟。

一、实验要求

  • 1.请独立完成作业。(可偷看别人的程序,但不能复制粘贴)
  • 2.请使用debug调试程序,这样不但可以查看运行结果,还能检查程序问题。
  • 3.思考题需要作答。

二、实验内容

1.编写程序实现:在代码段中设置堆栈;从键盘输入一个小写字母,入栈;将其转换成大写字母后再次入栈(不能覆盖之前存储的小写字母);将大写字母输出。思考:debug调试程序,堆栈段的起始物理地址和结束物理地址分别是多少,代码段的起始物理地址是多少?思考(不必作答):debug调试程序,初始状态,堆栈的内容是什么?若你能去1机房,可在机房尝试运行你的程序,看看是否崩溃,并思考为什么

  • 提示:字母存储占据多大空间?入栈的数据有多大?
  • 在这里插入图片描述

源程序:

code segment assume  cs:code             da dw 100 dup(?)start:                  mov  bx, offset  da                add bx,200	mov ax,cs                mov ss,ax                mov sp,bx                mov ah,1                int 21h                sub dx,dx                mov dl,al                push dx                and dl,11011111b                push dx                mov ah,2                int 21h                mov ax,4c00h                int 21hcode endsend start

堆栈中存放的字符(截图):

在这里插入图片描述
2.在代码段中设置堆栈。在代码段中开辟堆栈,存储十进制字型数据:48,49,50,51,52,53,54,55,56,57;使用loop循环,将这些数据分别出栈到寄存器DX中,使用INT 21H指令,将这些数据分别输出。若程序出错,请加大堆栈空间的大小。debug程序生成的exe文件。思考:堆栈的起始物理地址是?你规划的堆栈的大小是?初始状态堆栈栈顶的物理地址是?出栈结束后,堆栈的栈顶物理地址是?代码的起始物理地址是?

源程序:

code segment assume  cs:code             da db 100 dup(?)             sto dw 48,49,50,51,52                   dw 53,54,55,56,57start:  	mov ax,cs                mov ss,ax                mov sp,offset sto                mov cx,10s:                pop dx                mov ah,2                int 21h                loop s                mov ax,4c00h                int 21hcode endsend start

堆栈中存放的字符(截图):

在这里插入图片描述
3.设置数据段存储数据,利用loop循环,使用单个字符输出的形式输出Hello world!
步骤要求:
①设置数据段,存储字符串Hello world!和十进制数值13,10,36。
②在代码段中使用loop循环,利用ah为2的系统功能调用(int 21h),将数据段中所有数据当作ASCII码输出。
源程序:

data segment             da db 'hello world',13,10,36             sto dw $-dadata endscode segment assume  cs:code,ds:data             start:  	mov ax,data                mov ds,ax                mov bx,offset da                mov ah,2                mov cx,stos:                mov dl,[bx]                inc bx                int 21h                loop s                mov ax,4c00h                int 21hcode endsend start

在这里插入图片描述

4.在代码段中存储字符串Hello world!并输出。

步骤要求:
①在代码段中存储字符串Hello world!和十进制数值13,10,36。
②利用ah为9的系统功能调用(int 21h),将代码段中预先存放的字符串输出。
在这里插入图片描述
源程序:

code segment assume  cs:code            da db 'hello world',13,10,36            sto dw $-da            start:  	mov ax,cs                mov ds,ax                mov dx,offset da                mov ah,9                int 21h                mov ax,4c00h                int 21hcode endsend start

在这里插入图片描述

【一大早上起来发现自己两个科目的作业没交,早起惊魂,马上写完交了,/(ㄒoㄒ)/~~】

句子君:

看过一则新闻。一位96岁的奶奶在路边卖菜馍,有人问她,这么大年龄怎么还出来摆摊?她说:“一天到晚吃饱坐饿、打牌打麻将,我觉得那不是个事儿,对自己身体不好,对下一代的影响也不好。”谈到自己快乐的原因,奶奶说:“不高兴的事还是少想,哭哭啼啼也是一天,哈哈大笑也是一天。”

一个人有什么样的心态,就决定了他会过什么样的生活。心态好,即使暂时身处逆境,日子照样过得有希望。很多时候的痛苦纠结,不过是自己放不下;很多夜里的辗转反侧,不过是自己没想通。

转载地址:http://pycki.baihongyu.com/

你可能感兴趣的文章
USB驱动程序之描述符
查看>>
一般的,在s3c2440中,要想进行dma…
查看>>
一般的,在s3c2440中,要想进行dma…
查看>>
2011年05月29日
查看>>
2011年05月29日
查看>>
2011年05月29日
查看>>
2011年05月29日
查看>>
ARM Linux中断机制之中断的初始化
查看>>
ARM Linux中断机制之中断的初始化
查看>>
USB驱动之描述符
查看>>
USB系统设备模型建立流程
查看>>
DMA原理
查看>>
USB系统设备模型建立流程
查看>>
杂项设备实现原理
查看>>
DMA原理
查看>>
stat.h头文件,轻松获取文件属性(2…
查看>>
杂项设备实现原理
查看>>
stat.h头文件,轻松获取文件属性(2…
查看>>
stat.h头文件,轻松获取文件属性
查看>>
stat.h头文件,轻松获取文件属性
查看>>