汇编语言实验报告

发布时间 : 星期日 文章汇编语言实验报告更新完毕开始阅读

实验六 不同寻址方式的灵活应用

1.将课程上所有讲解过的程序上机调试,用debug跟踪其执行过程,并在过程中进一步理解所讲内容.

程序7.1

assume cs:code,ds:data

data segment db 'unIX'

db 'foRK' ;共定义8个字节,但程序的运行位置仍在16字节之后 data ends

code segment

start: mov al,'a' mov bl,'b' mov ax,4c00h int 21h code ends end start

程序7.1.1

将第一个字符串转换为大写,将第二个字符串转换为小写

assume cs:codesg,ds:datasg

datasg segment db 'BaSiC'

db 'iNfOrMaTiOn' datasg ends

codesg segment

start: mov ax,datasg

mov ds,ax

mov bx,0

mov cx,5 s: mov al,[bx] and al,11011111B mov [bx],al inc bx loop s

mov bx,5

mov cx,11 s0: mov al,[bx]

or al,00100000B mov [bx],al inc bx loop s0

mov ax,4c00h int 21h

codesg ends end start

;设置ds指向datasg段 ;设置bx = 0,ds:bx指向'BaSiC'的第一个字母 ;设置循环次数为5,因为'BaSiC'有5个字母 ; 将ASCII码从ds:bx所指向的单元中取出 ;将al中ASCII码的第五位置0,变为大写字母 ;将转变后的ASCII码写回原单元 ;bx 加1,ds:bx指向下一个字母 ;设置bx = 5,ds:bx指向'iNfOrMaTiOn' 的第一个字母;设置循环次数11,因为'iNfOrMaTiOn'有11个字母 ;将al中的ASCII码的第五位置为1,变为小写字母

问题7.6

编程,将 datasg 段中的每个单词的头一个字母改为大写字母

assume cs:codesg,ds:datasg

datasg segment

db '1. file ' db '2. edit ' db '3. search ' db '4. view ' db '5. options ' db '6. help ' datasg ends

codesg segment

start: mov ax,datasg mov ds,ax

mov bx,0

mov cx,6 s: mov al,[bx+3] and al,11011111B mov [bx+3],al add bx,16 loop s

mov ax,4c00h int 21h

codesg ends end start

联系合同范文客服:xxxxx#qq.com(#替换为@)