已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理实验一1DEBUG 的基本操作: (1) 从WINDOWS 进入DOS 之后,输入命令启动DEBUG: C:DEBUG 回车 (2) 输入R 命令,查看和记录CPU 各个寄存器的内容: -R 回车 看到什么?AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0100 NV UP EI PL NZ NA PO NC16D3:0100 0000 ADD BX+SI,AL DS:0000=CD (3) 输入A 命令,汇编下面的字符“WINDOWS”显示程序(DEBUG 调试环境中,默认为十六进制,因此源程序中十六进制数后面不写H): -A 100 ;从偏移地址是0100H 处开始写指令 MOV AH, MOV DL, 57 ;57H 是“W”的ASCII 码 INT 21 ;INT 21 是DOS 功能调用,AH=2 代表2 号功 ;能。这3 句合起来的功能是:显示DL 中的字符 MOV DL, 49 INT 21 MOV DL, 4E INT 21 MOV DL, 44 INT 21 MOV DL, 4F INT 21 MOV DL, 57 INT 21 MOV DL, 53 INT 21 INT 3 ; 功能是产生一个断点,不要省略 (4) 输入U 命令反汇编上面的程序: -U 100 问:这里100代表什么? 反汇编从0100开始(5) 输入G命令连续运行上面的程序,记录运行结果: -G=100 AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0100 NV UP EI PL NZ NA PO NC16D3:0100 B402 MOV AH,02(6) 输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57, 45,4C,43,4F,4D,45: -E 103 回车(以下同) -E 107 -E 10B -E 10F -E 113 -E 117 -E 11B (7) 输入D命令查看程序机器码的存放情况: -D 100 11E ;看从100开始到11E的机器码 (8) 输入G命令再连续运行程序,并记录运行结果: -G=100 WELCOMEAX=0245 BX=0000 CX=0000 DX=0045 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=011E NV UP EI PL NZ NA PO NC16D3:011E CC INT 3(9) 依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各 命令的运行结果: -T=100 回车 -G=100 106 回车 -G=100 10A 回车 -G=100 10E 回车 -G=100 11E 回车 T=100AX=0245 BX=0000 CX=0000 DX=0045 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0102 NV UP EI PL NZ NA PO NC16D3:0102 B257 MOV DL,57-g=100 106W-g=100 10aWE-g=100 10eWEL-g=100 11eWELCOME2一字节十六进制数转换为ASCII码(只考虑大写字母)用E命令在DS:1000单元中存放十六进制数5A,用A命令从CS:0100单元开始存放下面程序的机器码,并调试运行(DEBUG调试环境中,源程序中十六进制数后面不写H):CS:01008D360010LEASI,1000 ;将EA=1000送入SI中01048D3E2010LEADI,1020 ;将EA=1020送入DI中01088A04MOVAL,SI ;(AL)(SI)010A240FMOVBL,AL ;将AL中的一个字送入BL010C240FANDAL,0F ;(AL)(AL)(01H)010EE80E00CALL011F ;调用EA=011F中的指令011180E30ANDBL,F0 ;(BL)(BL)(F0H)0114B90400MOVCX,4 ;将立即数4送入CX中0117D2EBSHRBL,CL ;将BL中的内容左移CL ;中指出的位数,且每次移位最低位补0011988D8MOVAL,BL ;将BL中的一个字送入AL011BE80100CALL011F ;调用EA=011F中的指令011EF4RET :返回指令011F3C09CMP AL,09 ;(AL)-09,根据结果设置标志位01217602JBE0125 ;执行EA=0125的指令01230407ADDAL,07 ;(AL)(AL)+07H01250430ADDAL,30 ;(AL)(AL)+30H01278805MOVDI,AL ;(AL)送入EA=(DI)的单元中012947INCDI ;(DI)(DI)+1012AC3RET ;返回指令运行结果:1)写出执行上述程序的命令行 -G=100 2)程序执行后,1020=_41_,1021=_35_。3)思考:NOP 是空操作指令,若在ADDAL,07后面,加一条NOP,结果会如何?结果不变但占了内存3、搜索字符串结束标志,统计搜索的字符个数用E命令在DS:1000开始的单元中存放若干个ASCII字符,例如:30,31,3239,0D。(0D作为字符串结束标志,实验中请输入与示例不同的字符组合)。用A命令从CS:0200单元开始存放程序的机器码,并调试运行。参考程序如下:LEADI,1000 ;把有效地址1000送到DI中MOVDL,0 ;把立即数0H传送到DL中MOVAL,0D ;把立即数0DH传送到AL中AGAIN:CMP AL, DI ;(AL)-(ES:DI),根据结果设置标志位JEDONE ;如果结果为0零(ZF=1)即AL与DI相等则跳转至DONE INCDL ;(DL)(DL)+1 INC DI ;(DI)(DI)+1 JMPAGAIN ;转移到AGAIN语句DONE:LEABX,1020 ;把有效地址1020,送到BX中MOVBX,DL ;把DL的内容送到地址为DS:1020的内存单元中 RET ;返回指令,在执行返回指令后程序将接着调用指令的下一条指令运行运行结果:1)在DS:1000开始的单元中存放的字符串是_0123456789_2)程序执行后,搜索的字符个数存放在_DS:1020_单元,该单元的值是_0A_。3)程序执行后,(AL)=_0D_ ,(BX)=_1020_,(DL)=_0A_。4编制一个能在CRT上连续显示A,B,C,DZ大写英文字符的源程序,并在源程序下汇编调试运行。用A命令从CS:0300单元开始存放程序的机器码,并调试运行:参考源程序:CS: 0300 B300 MOV BL,0 ;把立即数0H传送到BL中0302 53 PUSH BX ;将BX的内容送入堆栈0303 B220 MOV DL,20 ;20H是“空格”的ASCII码,把20H转移到DL0305 B402 MOV AH,02 ;把02H转移到AH0307 CD21 INT 21 ;INT21是DOS功能调用,AH=2代表2号功能。显示DL中的字符0309 5B POP BX ;出栈指令,从堆栈中取出BX的内容030A 88D8 MOV AL,BL ;将BL中的内容传送到AL中030C FEC0 INC AL ;(AL)(AL)+1030E 3C1BCMP AL,1B ;(AL)-1BH,根据设置标志位0310 7502 JNZ 0314 ; 条件转移指令。结果不为零(ZF=0)转移到CS:03140312 B001 MOV AL,01 ;把01H转移到AL0314 88C3 MOV BL,AL ;把AL中的内容传送到BL中0316 53 PUSH BX ;进栈指令,将BX的内容送入堆栈0317 0440 ADD AL,40 ;(AL)(AL)+40H0319 88C2 MOV DL,AL ;把AL中的内容传送到DL中031B B402 MOV AH,02 ;把02H转移到AH031D CD21 INT 21 ;INT21是DOS功能调用,AH=2代表2号功能。显示DL中的字符031F B9FFFF MOV CX,FFFF ;把FFFFH转移到CX0322 49 DEC CX ;(CX)(CX)-10323 75FD JZ 0322 ;结果不为零(ZF=0)跳转到CS:03220325 EBDC JMP 0303 ;跳转到CS:0303按CTRL+C,可中止程序运行。请画出程序的流程框图。2)运行正确后,改写程序为0,1,2,3,4,5,7,8,9的循环显示。3)思考:如果希望程序能够自动退出,应该如何实现?把MOV CX,FFFF放到0303命令之前最后改成0323 JZ 0327 0325 JMP 0303 0327 MOV AH,4CH 0329 INT 21HNYYNCS: 0300 B300 MOV BL,0 ;把立即数0H传送到BL中0302 53 PUSH BX ;进栈指令,将BX的内容送入堆栈0303 B220 MOV DL,20 ;20H是“空格”的ASCII码,把20H转移到DL0305 B402 MOV AH,02 ;把02H转移到AH0307 CD21 INT 21 ;INT21是DOS功能调用,AH=2代表2号功能。显示DL中的字符0309 5B POP BX ;出栈指令,从堆栈中取出BX的内容030A 88D8 MOV AL,BL ;将BL中的内容传送到AL中030C FEC0 INC AL ;(AL)(AL)+1030E 3C1B CMP AL,0B ;比较指令,(AL)-0BH,根据设置标志位0310 7502 JNZ 0314 ; 条件转移指令,结果不为零(ZF=0)转移到CS:03140312 B001 MOV AL,01 ;把01H转移到AL0314 88C3 MOV BL,AL ;把AL中的内容传送到BL中0316 53 PUSH BX ;进栈指令,将BX的内容送入堆栈0317 0440 ADD AL,2F ;(AL)(AL)+2FH0319 88C2 MOV D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年现代金融科技应用项目可行性研究报告及总结分析
- 2025年科技园区发展综合治理项目可行性研究报告及总结分析
- 2025年全屋智能家居项目可行性研究报告及总结分析
- 对消防无人机驾驶员教育培训工作的几点建议
- 2025年跨境电商平台推广项目可行性研究报告及总结分析
- 2025年益阳市南县保安员招聘考试题库附答案解析
- 2025年智慧校园管理系统建设项目可行性研究报告及总结分析
- 2025年绿化苗木配送合同协议
- 施工升降机司机(建筑特殊工种)测试题题及答案
- 2025年零食零食品牌联名协议
- GB 6222-2025工业企业煤气安全规范
- 人教版八年级上册地理(课件)第三章 中国的自然资源第四节 海洋资源
- 四川省成都市第七中学2025-2026学年高三上学期11月半期考试语文(含答案)
- 统编版2025-2026学年语文二年级上册18 古诗二首敕勒歌 课件
- 2025年下半年海南省万宁市招聘事业单位工作人员笔试易考易错模拟试题(共500题)试卷后附参考答案
- BIM工程师质量管理计划
- 湿热灭菌柜验证培训
- 内蒙古呼和浩特市赛罕区2025-2026学年七年级上学期生物期中试卷(含答案)
- 工会考试题库附答案2025年
- 四川省凉山州西昌市2025-2026学年高一上学期期中学科素养监测数学试题(无答案)
- 呼和浩特市春华水务集团公司招聘笔试历年参考题库附带答案详解
评论
0/150
提交评论