常用汇编指令的使用
发布时间:2024-08-29
发布时间:2024-08-29
常用汇编指令的使用
一、 实验目的
(1) 了解各种字符尤其是小写字母和大写字母在计算机内部的表示形式,
并学习如何进行大小写字母的转换
(2) 了解AND、OR与XOR指令,并掌握它们的用途,提高代码运行的
效率。
(3) 掌握使用多层循环计数器CX的用法,避免导致出现错误。
(4) 了解BX、BP、SI、DI四种地址寄存器的组合使用。并掌握它们的含
义。
二、 实验内容
把数据段中定义的字符串前四个是小写字母的变成大写字母。使用DEBUG命令查看转换后的结果。
三、 实验步骤
(1) 首先采用BX控制行的偏移量,SI控制列的偏移量。
(2) 先给外层循环的CX赋值为4,BX为0;进入内层循环时先把外层循
环的值压入栈内。重新给CX赋值,此值为内存循环值,SI赋值为4.
(3) 根据偏移量取出字母放到AL中,并把与11011111B进行运算,并把
结果放入AL中,其次SI自增1.
(4) 内层循环完了,BX加上16,栈顶元素弹出到CX,重新进入内存循
环
(5) 直至外层循环完了为止。
四、 实验流程图
开始
BX=0,CX=4
CX=0?
PUSH CX SI=0,CX=4
取出字母进行 与运算并存回
CX=0?
BX=BX+6 , POP CX
结束
五、 实验代码
stack segment
dw 0
stack ends
data segment
db '1. create '
db '2. alter '
db '3. select '
db '4. modify '
data ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov bx,0
mov cx,4
s0:
push cx
mov si,0
mov cx,4
s1:
mov al,[bx+si].3
and al,11011111b
mov [bx+si].3,al
inc si
loop s1
add bx,16
pop cx
loop s0
mov ah,4ch
int 21h
code ends
end start
六、实验心得
(1) 使用低端八位AL编译时产生操作数指令出错,按照老师说的,
[BX+3+SI]没有错,可是在自己的电脑运行却报错。去掉3就行了,
这是什么问题自己也不知道。还有待解决。
(2) 今天在机房帮他人调试程序,发现敲T命令时会异常退出,不知道是
怎么回事。
下一篇:《走进安徒生的童话世界》教学设计