本文共 2694 字,大约阅读时间需要 8 分钟。
一、实验要求
二、实验内容
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/