实验5汇编实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学与软件科学学院实验报告

学期:2017至 2018第 2 学期 2018年4月4日

课程名称: 汇编语言专业:信息与计算科学班级: 2015级_5班

实验编号:5实验项目:编程实现大小写字母间的转换

指导教师:冉茂华

姓名:黄玉含学号:2015060512实验成绩:

1、编写汇编程序,将datasg段中每个单词前4个字母改为大写字母,用Debug跟踪其执行过程。

assume cs: codesg, ds:datasg, ss:stacksg

stacksg segment

dw 0,0,0,0,0,0,0,0

stacksg ends

datasg segment

db ‘1. display ’ ; 该字符串占16个字节,不足位以空格填充(下面3个字符串类似)db ‘2. brows ’

db ‘3. replace ’

db ‘4. modify ’

datasg ends

codesg segment

start:

?

codesg ends

end start

代码如下:

assume cs: codesg, ds:datasg, ss:stacksg stacksg segment

dw 0,0,0,0,0,0,0,0

stacksg ends

datasg segment

db "1. display "

db "2. brows "

db "3. replace "

db "4. modify "

datasg ends

codesg segment

start:

mov ax,datasg

mov ds,ax

mov cx,4

mov bx,3

s: mov dx,cx

mov si,0

mov cx,4q

s0: mov al,[bx+si]

and al,11011111B

mov [bx+si],al

inc si

loop s0

add bx,16

mov cx,dx

loop s

mov ax,4c00h

int 21h

codesg ends

end start

结果分析:

○1多重循环要保留高层循环的cx值,可以直接放入寄存器,也可以利用push,pop指令记录在内存。二维数组的存储可以利用寄存器相对变址寻址的方式进行。Ex:[bx,bi]和[bx

,di]

○2大小写转换:小写转大写:and 11011111B

大写转小写:or 00100000B

○3二维数组用基址变址寻址。

相关文档
最新文档