- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IBM-PC汇编语言程序设计字符串转换和拷贝
《IBM-PC汇编语言程序设计》实验报告
题目:字符串转换和拷贝
专业:
学号:
姓名:
2010-2011学年第一学期
一.设计目的
熟练掌握简单程序设计的基本方法
熟练掌握汇编指令的使用
熟练掌握程序的调试方法
二.设计内容
字符串转换和拷贝
Data segment
str_a db ‘assembly language is not difficult’
str_b db 40 dup (?)
Data ends
请将字符串str_a中的字符转换成大写并拷贝到str_b中。
编写程序,编译连接,用DEBUG运行调试
提示:可以转化完再拷贝,也可以直接拷贝然后再对str_b进行处理,统一减20H。
三.程序设计原理
四.程序流程图
五.源程序
;*************************************************************************
data_seg segment ; define data segment
str_a db assembly language is not difficult,34
str_b db 40 dup(?)
data_seg ends
;*************************************************************************
code_seg segment ; define code segment
assume cs:code_seg, ds:data_seg
start: ; starting execution address
; set DS register to current data segment
mov ax, data_seg ; data segment addr
mov ds, ax ; into DS register
; P77
lea si, str_a ; lea P56, si P21
lea di, str_b ; di P21
mov cx, 34
;cld ; P77
;rep movsb ; P75
;lea di, str_b
;mov cx, 34
s: mov al, [si] ; 转换
sub al, 20h
mov [di],al
;mov ah,02h ; 输出
;mov dl,[di]
;int 21h
inc si
inc di
loop s
lea si, str_b ; 输出
mov cx, 34
call show_str
mov ax, 4c00h
int 21h
show_str:
mov ax, 0b800h
mov es, ax
mov di, 0f30h
ss_next:
mov al,[si]
mov es:[di], al
mov byte ptr es:[di+1], 0cah
inc si
add di, 2
loop ss_next
ret
code_seg ends ; end of code segment
;*************************************************************************
end start
六.调试过程
1.调用字处理程序建立asm文件
2.用汇编程序masm对源文件汇编产生目标文件obj
3.用连击程序link产生执行文件exe
4.执行程序
七.遇到的问题及解决方法
八.参考文献
文档评论(0)