汇编语言-实验8 程序加载数据段和代码段,代码段中存放数据

一、实验要求

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

二、实验内容

  • 1.编写程序实现:

①从键盘输入一个小写字母,存储在内存的代码段中;
②将其转换成大写字母后再次存储在代码段中(不能覆盖之前存储的小写字母);
③将大写字母输出。

  • 思考1:debug调试程序,初始状态下CX的值有何意义?
  • 思考2:debug调试程序,代码段的起始物理地址和结束物理地址分别是多少?

源程序(不要截图):

code segment
    assume cs:code
start:
    mov ax,cs
    mov ds,ax

;键盘输入字符
    mov ah,01h
    int 21h
    mov bl,al
;转换字符 ,32的十六进制是20,大写转换成小写是加上32 
    and al,11011111b

;显示的字符
    mov dl,al
    mov ah,02h
    int 21h
    
     ;mov dx,offset sto    

     mov ax,4c00h
     int 21h

     code ends
 end start

思考1:debug调试程序,初始状态下CX的值表示代码的长度

思考2:debug调试程序,代码段的
起始物理地址:076A:0000
结束物理地址:076A:0017

2.不设置数据段,在代码段中编写程序,使用loop循环,在代码段中存储十进制字节型数据:48,49,50,51,52,53,54,55,56,57;使用loop循环,将上述数据当作ASCII码输出。debug调试程序,分别使用d命令和u命令查看代码段,并运行。

  • 思考3:代码段中存放数据的起始物理地址和结束物理地址分别是多少?
  • 思考4:代码段中存放代码的起始物理地址和结束物理地址分别是多少?
  • 思考5:猜测初始状态下,此题与上个实验第2题cx的值是否相同,说出理由,并验证。

源程序(不要截图):

assume cs:code
code segment
   sto dw 48h,49h,50h,51h,52h,53h,54h,55h,56h,57h
start:
	mov ax,sto
                mov  bx, offset  sto
                mov al,48
                mov cx,10
s:             
                mov [bx],al
	add al,1
	add bx,1
     loop s
               mov bx,offset sto
               mov cx,10
j:
               mov dl,[bx]
               mov ah,2
               int 21h
               add bx,1
     loop j
               mov ax,4c00h
               int 21h
code ends
end start
思考3:代码段中存放数据的
起始物理地址:076A:0000
结束物理地址:076A:0012
思考4:代码段中存放代码的
起始物理地址:076A:0000
结束物理地址076A:002F
思考5:猜测初始状态下,此题与上个
实验第2题cx的值是否相同
不同,代码长度不一致

3.改编第1题。在代码段中开辟两个字节大小的数据空间,用来存放输入输出的小写和大写字母;查看第1题的机器码,将其机器码以数据形式写入代码段(使用伪命令db或者dw);设置start的位置,使得这些机器码都能执行。

  • 思考6:debug调试程序,猜测初始状态下CX的值与第1题是否相同?r命令查看验证猜测是否正确。
  • 思考7:猜测此题代码段的机器码与第1题是否相同?debug调试程序,查看代码段验证。

源程序(不要截图):

assume cs:code
code segment
start:
	db 2eh
	db 8ch,0c8h
    db 8eh,0d8h
	db 0b4h,01h
    db 0cdh,21h

    db 8ah,0d8h
    db 24h,0dfh

	db 8ah,0d0h
	db 0b4h,02h
	db 0cdh,21h

	db 0b8h,0,4ch
    db 0cdh,21h

code ends
end start
思考6:debug调试程序,猜测初始状态下CX的值与第1题相同
思考7:猜测此题代码段的机器码与第1题相同

在这里插入图片描述

【得嘞!今天突然发现又有新的作业了,两眼泪光闪闪~吃了室友得蜜瓜,漫画得VIP快要过期啦!马上看完更新了的!先走一步啦】

文章君:
@别偷我糖:“你可以讨厌一个东西,但请允许它存在,也请允许别人喜欢它。”不贬低别人的喜欢是最基本的素养。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A cup of tea.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值