博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汇编:采用址表的方法编写程序实现C程序的switch功能
阅读量:4575 次
发布时间:2019-06-08

本文共 1721 字,大约阅读时间需要 5 分钟。

//待实现的C程序  1 void main() 2 { 3      int grade=90; 4      switch(grade/1-0) 5 { 6  case 9: 7     printf("excellence"); 8     break; 9  case 8:10         printf("good");11     break;12  case 7: 13     printf("average");14     break;15  case 6:16     printf("pass");17     break;18  default:19     printf("fail"); 20 }21 }

 

汇编代码:

1 ;采用地址表的方法编写汇编程序实现以下的C程序的功能 2 DATAS SEGMENT 3 grade dw 90 4 ComTab dw coma,comb,comc,comd 5 g1 db 'excellent','$' 6 g2 db 'good','$' 7 g3 db 'average','$' 8 g4 db 'pass','$' 9 g5 db 'fail','$'10 DATAS ends11 CODES SEGMENT12     ASSUME CS:CODES, DS:DATAS13     START:14         mov AX,DATAS15         mov DS,AX   ;把需要比较的两个数字放入两个寄存器中16         17         xor ax,ax18         xor bl,bl19                     ;存放操作数的寄存器进行清020         mov Ax,grade;待操作的数21         mov bl,0aH22         div bl       ;除以1023 24         and ax,00FFH25         cmp Ax,926         ja default  27         cmp Ax,628         jb default     29                     ;结果小6或者大于9则跳转到默认输出30         xor bx,BX   ;BX清031         mov bl,09H  ;将bl设为932         sub bx,ax   ;用09去减上面得到的结果(AX) 得链连地址表33         add bx,bx34         jmp ComTab[BX]35 36     default:37         lea dx,g538         mov ah,09h39         int 21H     40         jmp exit41     coma:42         lea dx,g143         mov ah,09H44         int 21H45         jmp exit46     comb:47         lea dx,g248         mov ah,09H49         int 21H50         jmp exit51     comc:52         lea dx,g353         mov ah,09H54         int 21H55         jmp exit56     comd:57         lea dx,g458         mov ah,09H59         int 21H60         jmp exit61     exit:62         mov ah,4ch63         int 21H64 CODES ends65     end START

 

转载于:https://www.cnblogs.com/roseAT/p/10246139.html

你可能感兴趣的文章
Form属性、内置子程序、触发器、系统变量
查看>>
广州夜景一
查看>>
linux编译安装python3和安装django
查看>>
PHP数组对象互转
查看>>
JVM(2)--一文读懂垃圾回收
查看>>
NyistOJ 55 懒省事的小明(c++)(优先队列)(贪心)
查看>>
iOS ERROR: unable to get the receiver data from the DB 解决方式
查看>>
游戏开发——战斗系统设计技巧
查看>>
Android ROM 制作教程
查看>>
Android模拟器使用SD卡
查看>>
新手Oracle安装及使用入门
查看>>
4/25
查看>>
python3 第十七章 - sequence(序列)
查看>>
关于新标签dialog
查看>>
最大正方形
查看>>
万径人踪灭(FFT+manacher)
查看>>
技术规格说明书
查看>>
图写成一个类(2)
查看>>
Segmentation fault (core dumped) 错误的一种解决场景
查看>>
hdu1150 Machine Schedule (匈牙利算法模版)
查看>>