汇编语言上机实验报告一.docx
- 文档编号:1855920
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:19
- 大小:317.93KB
汇编语言上机实验报告一.docx
《汇编语言上机实验报告一.docx》由会员分享,可在线阅读,更多相关《汇编语言上机实验报告一.docx(19页珍藏版)》请在冰豆网上搜索。
汇编语言上机实验报告一
汇编语言上机实验报告
(一)
李昌健
学号:
U202010153
专业:
应用物理学1001班
时刻:
2021年5月16日
地址:
南一楼
实验一
在一个以BUF为首址的缓冲区中寄存着字符串'Howareyou'。
请写一个程序,将该字符串倒转。
倒转后的字符串放在一个新缓冲区中。
利用TD观看程序运行终止前,是不是实现了上述功能。
提示:
变量可用如下伪指令概念
BUFDB‘Howareyou'
N=$-BUF;N为字符串的长度
NEW_BUFDBNDUP(0)
操作提示:
利用TD.EXE调试程序时,应先单步执行各个语句,每执行一条语句,都应观看数据段中的内容和相应寄放器的转变。
二实验要求
把握大体的程序设计框架和方式、熟悉经常使用指令的用法、熟悉DOS功能挪用、进一步把握TD的利用方式。
三寄放器分派和变量概念说明
此题利用LOOP做循环,一一将BUF中的字节复制到NEW_BUF中。
1存储单元分派
BUF:
寄存初始串’howareyou’
NEW_BUF:
寄存复制的字符串
2寄放器分派
BX:
BUF的偏移地址
BP:
NEW_BUF的偏移地址
CX:
记录循环次数
SI,DI:
别离用作BUF和NEW_BUF的变址寄放器
AX:
临时寄放器
四流程图
五源代码
DATASEGMENT
BUFDB'Howareyou'
N=$-BUF
NEW_BUFDBNDUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETBUF
MOVBP,OFFSETNEW_BUF
MOVCX,N
MOVSI,CX
MOVDI,0
DECSI
LINE:
MOVAL,[BX+DI]
MOVDS:
[BP+SI],AL
INCDI
DECSI
LOOPLINE
CODEENDS
ENDSTART
六运行结果
用td调试程序,能够看到在数据段里NEW_BUF已经寄存了倒置的BUF.
实验二
一题目
假设数据段概念如下:
DATASEGMENT
STRINGDB‘ThePersonalComputer&TV’
DATAENDS
试用字串操作等指令编程完成一下功能:
(1)把该字符串传送到附加段中偏移量为GET_CHAR开始的内存单元中。
(2)
(3)检查该字符串是不是有‘&’符,假设有那么用空格符将其替换。
(4)把字符串大写字母传送到附加段中CAPS开始的单元中,其余字符传到以CHART开始的单元中。
然后将数据段中存储上述字符串的单元清零。
二实验要求
把握大体的程序设计框架和方式、熟悉经常使用指令的用法、熟悉DOS功能挪用、进一步把握TD的利用方式。
学会熟练适用字符串操作指令。
三寄放器分派和变量概念说明
此题利用字符串操作指令MOVSB,CMPSB,SCASB等实现字符串的传递,比较,搜索等功能。
1变量概念说明
(1)关于第一问,数据段中STRING用于寄存初始字符串,附加段中GET_CHAR用于寄存复制后的字符串。
(2)关于第二问,附加段中COM用于寄存待比较的字符串’TheComputer’。
(3)关于第三问,没有效到附加段,只是用到了数据段中的初始字符串STRING。
(4)关于第四问,附加段中CAPS用于寄存大写字母,CHART用于寄存其他字母。
2寄放器分派
SI:
寄存源串的偏移地址。
DI:
寄存目串的偏移地址。
CX:
寄存循环计数值。
AX,BX:
临时利用的的寄放器。
四流程图
(1)
(2)
(3)
是
利用STOS传到CAPS
CX为0?
是
结束
否
交换BX,DI
利用STOS传到CAPS
交换BX,DI
(4)
五源代码
DATASEGMENT
STRINGDB'ThePersonalComputer&TV'
NEQU$-STRING
DATAENDS
HELLOSEGMENT
GET_CHARDB100DUP(0)
CAPSDB100DUP(0)
CHARTDB100DUP(0)
COMDB'TheComputer'
COMPAREDB0
NUMBERDB0
HELLOENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
HELLO
START:
MOVAX,DATA
MOVDS,AX
MOVAX,HELLO
MOVES,AX
MOVCX,N
LEASI,STRING
LEADI,GET_CHAR
CLD
REPMOVSB
MOVBL,0
MOVCX,N
CMPCX,12
JNELINEB
MOVAL,1
LEASI,STRING
LEADI,COM
MOVBX,CX
REPECMPSB
JNELINEA
JMPLINEC
LINEA:
MOVAL,0
SUBBX,CX
JMPLINEC
LINEB:
MOVAL,0
LINEC:
MOVCOMPARE,AL
MOVNUMBER,BL
MOVAX,DATA
MOVES,AX
MOVAL,'&'
LEADI,STRING
MOVCX,N
CLD
REPNESCASB
JZCHANGE
JMPLINED
CHANGE:
MOVBYTEPTRDS:
[DI-1],''
LINED:
MOVAX,DATA
MOVDS,AX
LEASI,STRING
LEADI,CAPS
LEABX,CHART
MOVCX,N
CLD
LINEF:
LODSB
CMPAL,41H
JBLINEG
CMPAL,5AH
JALINEG
STOSB
MOVBYTEPTR[SI-1],0
JMPLINEH
LINEG:
XCHGBX,DI
STOSB
XCHGBX,DI
MOVBYTEPTR[SI-1],0
LINEH:
LOOPLINEF
CODEENDS
ENDSTART
六运行结果
(1)运行后将原字符串放在了附加段偏移地址为0000的区域,如下
(2)由于两字符串长度为零,因此不相等,比较次数为零。
(3)运行后已将&替换为空格,如下
(4)运行后已将大写字母放在一路,其他字母放在另一区域,如下
实验三
一题目
编程将AX寄放器中的内容以相反的顺序传送到DX寄放器中,并要求AX中的内容不被破坏,然后统计DX寄放器中1的个数是多少。
二实验要求
把握大体的程序设计框架和方式、熟悉经常使用指令的用法、熟悉DOS功能挪用、进一步把握TD的利用方式。
熟练把握移位指令的利用。
三寄放器分派和变量概念说明
此题先将AX中的数据循环右移,每移一名,都将移出位从DX右端移入,如此移动16次后DX即是AX的倒转的数。
1变量概念说明
数据段中的PRINT,HELLO,KITTY是用来寄存一些用于输出的字符串。
2寄放器分派
AX:
用于寄存原始数据
DX:
用于寄存倒转后的数据
BL:
记录DX中1的个数
CX:
记录循环次数
四流程图
五源代码
DATASEGMENT
PRINTDB'Thenumberof1inDXis:
$'
HELLODB0DH,0AH,'$'
KITTYDW0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,34H
MOVCX,16
MOVBL,0
LINEA:
RORAX,1
JCLINEB
JMPLINEC
LINEB:
INCBL
LINEC:
RCLDX,1
LOOPLINEA
MOVKITTY,DX
LEADX,PRINT
MOVAH,9
INT21H
MOVDL,BL
ADDDL,30H
MOVAH,2
INT21H
LEADX,HELLO
MOVAH,9
INT21H
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
六运行结果
程序运行后能够看到DX中是AX的反转,如下所示
而且将DX中的1的个数输出,如以下图中最后一行:
实验四
一题目
将以BUF为首地址的字节存储区中的既能被2整除也能被7整除的无符号整数的个数(假定≤9)显示出来,同时对应的显示它们别离对应的地址偏移量。
二实验要求
把握大体的程序设计框架和方式、熟悉经常使用指令的用法、熟悉DOS功能挪用、进一步把握TD的利用方式。
三寄放器分派和变量概念说明
此题将0-255中能被2和7整除的数列表,关于需要检测的数,将其和该表一一对照,可知其是不是能被2和7的整除。
1变量概念说明
数据段中STAND用于寄存0-255中能被2和7整除的数,NUMBER用于寄存待检测的数。
其他变量用于显示输出。
2寄放器分派
DI:
用于寄存目的串偏移地址
CX:
用于记录循环次数
BX,DX,AX:
临时利用
四流程图
五源代码
DATASEGMENT
NUMBERDB0,7,14,25,72,56,70
NAEQU$-NUMBER
STANDDB0,14,28,42,56,70,84,98,112,126,140,154,168,182,196,210,224,238,252
NBEQU$-STAND
PRINTADB'Number','$'
PRINTBDB'Address','$'
PRINTCDB0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAH,9
LEADX,PRINTB
INT21H
LEADX,PRINTC
INT21H
MOVCX,NA
MOVBX,0
MOVSI,0
LINEA:
MOVAL,[BX]
LEADI,STAND
PUSHCX
MOVCX,NB
REPNESCASB
JZLINEB
JMPLINEC
LINEB:
MOVAH,2
MOVDL,BL
ADDDL,30H
INT21H
MOVAH,9
LEADX,PRINTC
INT21H
INCSI
LINEC:
POPCX
INCBX
LOOPLINEA
MOVAH,9
LEADX,PRINTA
INT21H
LEADX,PRINTC
INT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 上机 实验 报告