汇编语言课程设计代码转换程序(3)

2020-06-03 14:52

汇编语言课程设计报告(2011)

参考文献

[1]刘其明. 汇编语言程序设计教程[M]. 江苏:中国矿业大学出版社, 2010.10 [2]沈美明. IBM-PC汇编语言程序设计实验教程[M]. 北京:清华大学出版社,2010.6

9

代码转换程序设计

附 录

附录1 源程序清单

附录1.1程序功能菜单模块源程序

主菜单:

extrn main:far,change1:far,change2:far,change3:far,change4:far,change5:far stack segment para public 'stack' db 200 dup (0) stack ends data segment

;*****主程序中的提示信息*****

str1 DB 0AH,0DH, '******************************************************$' str2 DB 0AH,0DH, '** Welcome you ! **$' str3 DB 0AH,0DH, '**--------------------------------------------------------------------------**$' str4 DB 0AH,0DH, '** This is programme of code conversion! **$' str5 DB 0AH,0DH, '** Please input your choice: **$' str6 DB 0AH,0DH, '** 1:Lowercase letters to Capital letters **$' str7 DB 0AH,0DH, '** 2:Capital letters to Lowercase letters **$' str8 DB 0AH,0DH, '** 3:Binary to Hex **$' str9 DB 0AH,0DH, '** 4:Hex to Binary **$' str10 DB 0AH,0DH, '** 5:Hex to Decimal **$' str11 DB 0AH,0DH, '** 6:Quit or exit **$' str12 DB 0AH,0DH, '******************************************************$' str13 DB 0Ah,0Dh,'Input error,please repess!','$'

str14 DB 0AH,0DH,0AH,0DH, 'Input your choice:','$'

data ends code segment

assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax disp macro m lea dx,m mov ah,9 int 21h endm

disp str1 disp str2 disp str3 disp str4 disp str5 disp str6 disp str7 disp str8 disp str9 disp str10 disp str11 disp str12 disp str14 lop: mov ah,8 int 21h

10

汇编语言课程设计报告(2011)

cmp al,'1' jz ltol cmp al,'2' jz lto2 cmp al,'3' jz lto3 cmp al,'4' jz lto4 cmp al,'5' jz lto5 cmp al,'6' jz exit disp str13 disp str14 jmp lop ltol: call main

call change1 jmp lop lto2: call main

call change2 jmp lop lto3: call main

call change3 jmp lop lto4: call main

call change4 jmp lop lto5: call main

call change5 jmp lop exit: mov ah,4ch int 21h code ends end start 子菜单:

public info1,info2,bufa,bufb,buf,main,info0,info3 extrn change1:far,change2:far,change3:far,change4:far data segment

info0 db 0ah,0dh,'this is the change of letter to leter:$' info1 db 0ah,0dh,'please input string:$' info2 db 0ah,0dh,'output string:$' bufa db 81 db ?

db 80 dup (?) bufb db 80 dup (?)

info3 db 0ah,0dh,'this is the change of digital to digital:',0ah,0dh,'$'

buf db 0dh,0ah,'the number is:0100101010001111b',0ah,0dh,'the result is:$' data ends

stack segment stack db 200 dup (?) stack ends code segment main proc far

assume ds:data,cs:code,ss:stack mov ax,data mov ds,ax

11

代码转换程序设计

disp macro m lea dx,m mov ah,9 int 21h endm

call change1 call change2 disp info3

disp buf call change3 call change4 ret main endp code ends end

附录1.2小写字母向大写字母转换模块源程序

extrn info1:byte,info2:byte,bufa:byte,bufb:byte,info0:byte public change1 code segment assume cs:code lowtohigh proc near cmp al,'a' jb stop cmp al,'z' ja stop sub al,20h stop :ret

lowtohigh endp change1 proc far lea dx,info0 mov ah,9 int 21h

lea dx,info1 mov ah,9 int 21h lea dx,bufa mov ah,10 int 21h

lea si,bufa+1 lea di,bufb mov ch,0 mov cl,[si] add si,1 next:mov al,[si] call lowtohigh mov [di],al inc si inc di loop next

mov byte ptr [di],'$' lea dx,info2 mov ah,9 int 21h lea dx,bufb

12

汇编语言课程设计报告(2011)

mov ah,9 int 21h ret change1 endp code ends end

附录1.3大写字母向小写字母转换模块源程序

extrn info1:byte,info2:byte,bufa:byte,bufb:byte public change2 code segment assume cs:code hightolow proc near cmp al,'A' jb stop cmp al,'Z' ja stop add al,20h stop:ret

hightolow endp change2 proc far lea dx,info1 mov ah,9 int 21h lea dx,bufa mov ah,10 int 21h

lea si,bufa+1 lea di,bufb mov ch,0 mov cl,[si] inc si next:mov al,[si] call hightolow mov [di],al inc si inc di loop next

mov byte ptr [di] ,'$' lea dx,info2 mov ah,9 int 21h lea dx,bufb mov ah,9 int 21h ret change2 endp code ends end

附录1.4二进制数向十六进制数转换模块源程序

extrn buf:byte,info3:byte public change3 code segment change3 proc far

assume cs:code

13


汇编语言课程设计代码转换程序(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基础化学题库题库答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: