程序设计实验解剖.docVIP

  • 11
  • 0
  • 约4.33千字
  • 约 11页
  • 2016-12-27 发布于湖北
  • 举报
微机原理实验报告 实验目的 熟悉pentium微处理器指令系统和寻址方式 掌握汇编语言程序的编程与调试方法 实验内容 结合作业第二题熟悉pentium微处理器实模式下算术与逻辑运算指 令的功能,用debug逐条观察各个指令执行前后的相关寄存器的标志 位的变化。 masm6.11的使用和汇编语言程序的调试 下列程序的功能是求一组十进制无符号数(2位数)的最大值,读懂该程序。(见附录) 用masm6.11汇编上述程序 用debug跟踪,调试上述程序 用u命令列出反汇编程序,与源程序清单比较 跟踪到语句12,检查语句执行后ds寄存器的变化 语句12执行后,发命令d ds:0,检查显示的内容是否与程序数据段定义的单元内容一致。 继续跟踪程序,检查程序执行过程中ax,dx等寄存器的变化 将程序的功能改为求最小数 如果block单元存的数据是压缩bcd码,修改上述程序。 实验报告要求 画出实验内容2中程序的框图 将实验内容2程序的block单元存放的数据改为压缩bcd码,列出修改后的程序清单。 实验内容3的程序说明和程序清单 实验数据及结果 求最大数的程序框图 2. 将程序中的存储数改为压缩BCD码 data segment para block db 52h,14h,56h,85h,34h db 63h,38h,70h,18h,69h count equ $-offset block max db 1 dup(?) data ends cseg segment assume cs:cseg,ds:data start proc far mov ax, data mov ds, ax mov si, offset block mov bx, offset max mov cx, count mov dl, [si] inc si dec cx mov ah, 0 mov dh, 0 comp: lodsb cmp dx, ax jg next mov dl, al next: loop comp mov [bx], dl print: mov bx, offset max mov dl, [bx] mov cl, 4 shr dl, cl add dl, 30h mov ah, 2 int 21h mov dl, [bx] and dl, 0fh add dl, 30h mov ah, 2 int 21h mov ah, 4ch int 21h ret start endp cseg ends end start 3. 计算二位无符号数的平方 data segment ;数据段 string db Input a number $ errstr db 0dh,0ah,Error! Please input two digit!,0dh,0ah,$ resstr db 0dh,0ah,The square is $ data ends ;******************************************************** code segment ;代码段 assume cs:code,ds:data start: main proc far push ds ;数据段寄存器初始化 sub

文档评论(0)

1亿VIP精品文档

相关文档