




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初创公司流水账管理制度
- 培训班学员考勤管理制度
- 上市公司投融资管理制度
- 公司咖啡室零食管理制度
- 加气站疫情防控管理制度
- 公司更衣室钥匙管理制度
- 勘探公司招待所管理制度
- 业委会维修基金管理制度
- 子公司组织架构管理制度
- 月薪工资核算管理制度
- 电子商务招生宣传
- 预算绩效评价管理机构入围投标文件(技术标)
- 珊瑚化石科普知识讲座
- 中小学德育工作指南实施手册
- (新版)职业健康综合知识竞赛题库附答案
- 人教版九年级化学下册第九单元《溶液》复习说课稿
- (新湘科版)六年级下册科学知识点
- 短视频的拍摄与剪辑
- 对应急疏散人员的培训和教育
- 四川省医学会第八次精神医学学术会议课件
- GB/T 5224-2023预应力混凝土用钢绞线
评论
0/150
提交评论