微机原理课堂演示代码.docVIP

  • 21
  • 0
  • 约5.16千字
  • 约 9页
  • 2017-05-19 发布于河南
  • 举报
微机原理课堂演示代码

分支机构 分支程序举例:CCTV幸运52有个猜商品价格的游戏,这里简化成猜数游戏。根据提示信息输入你所猜的数,计算机经过与谜底比较后提示你高了或低了,如果猜中则恭喜你答对了。 ;Guess number data segment ;段定义伪指令 msg1 db 10,13,Guess a number: $ msg2 db 10,13,your number is lower! guess again: $ msg3 db 10,13,your number is higher! guess again: $ msg4 db 10,13,Congratulate you! your number is right!$ key db 34h data ends ;段定义伪指令 code segment ;段定义伪指令 assume cs:code,ds:data ;段基假设 begin: mov ax,data ;段基装填 mov ds,ax mov ah,9 ;显示一个字符串 mov dx,offset msg1 int 21h ;DOS功能调用 input: mov ah,1 ;从键盘上输入一个数字符到AL int 21h ;DOS功能调用 cmp al,key ;输入字符与谜底比较 je right ;相等 ja higher ;高了 mov dx,offset msg2 ;低了 mov ah,9 int 21h ;DOS功能调用 jmp input higher: mov dx,offset msg3 mov ah,9 int 21h ;DOS功能调用 jmp input right: mov dx,offset msg4 mov ah,9 int 21h ;DOS功能调用 mov ah,4ch ;结束程序,返回DOS int 21h code ends ;段定义伪指令 end begin ;结束汇编 循环程序 先执行后判断结构 例1:(先执行后判断循环)已知从BLOCK开始有N个带符号字节数据,试编程找出其中数值最大的数存入MAX单元。 dat segment block db 2,34,67,-45,3,-54h,-23,-6h, db 08,80,29,65h,-124,76,57,23h n equ $-block max db ? dat ends cod segment assume cs:cod,ds:dat beg: mov ax,dat mov ds,ax mov cx,n-1 mov al,block mov bx,offset block+1 lp: cmp al,[bx] jge next mov al,[bx] next: inc bx loop lp mov max,al mov ah,4ch int 21h cod ends end beg 先判断后执行结构 例4-7:(先判断后执行循环)试编程从键盘上输入一位十进制数N,并计算N!存入字变量Nj.如果计算溢出应提示. dat segment string db Please input a number(0-9):$ err db your number is too large,10,13,24h nj dw ? dat ends cod segment assume cs:cod,ds:dat beg: mov ax,dat mov ds,ax reinput: mov dx,offset string mov ah,9 int 21h mov ah,1 int 21h cmp al,39h ja reinput and al,0fh mov ch,0 mov cl,al inc cx mov dx,0 mov ax,1 lp: loop oprt jmp short endl oprt: mul cx ; cmp dx,0 ; jnz over jmp lp ;over: mov dx,offset err ; mov ah,9 ; int 21h ; jmp reinput endl: mov nj,ax mov ah,4ch int 21h cod ends end beg 双重控制循环(循环控制条件二个或二个以上) 例4-9:(双重控制循环)关键字搜索。已知从STRING开始有一个字符串(串长100)。编程搜索其中是否有关键字符串AB,如有,显示其相对串首的偏移量,如无,显示NO FOUND。 dat segment str

文档评论(0)

1亿VIP精品文档

相关文档