当前位置:   article > 正文

8086汇编指令查询小工具,JavaScript编写,浏览器直接运行_汇编指令查询器

汇编指令查询器
程序界面

         汇编语言还是在大学的时候学的,汇编语言有个特点是语句短、条数多,很难可以把全部指令都背熟。当时就想编写一个软件可以随时查阅汇编语言的各类指令,而且软件不需要编译可以随时更新,可惜当时用javascript语言写只写了一半,现在终于有空了,就把另一半补全了。


目录

一、程序效果展示

二、程序制作过程

三、程序源代码


一、程序效果展示

        输入字母会自动出现匹配的下拉列表,控制键盘↑和↓键就可以上下移动选择想查看的汇编指令解析。如下图:

二、程序制作过程

        (一)为了实现一个HTML文件就可以运行,因此所有的数据都使用<div></div>标签进行存放,并直接利用指令名作为divid,例如:<div id="AAD">,以便后续通过id实现快速查找。主要代码如下:

  1. <div id="AAD"> AAD∶ 指令助记符——除法的ASCII调整(非压缩的BCD码)。在执行除法操作前,必须利用 AAD指令将非压缩型BCD码表示的数转换成二进制数送AL。步骤是,先将被除数的高位数(AH中的内容)乘以10,然后加到AL的低位数中,接着将AH清零。
  2. </div>

        (二)使用获取用户在input框输入的字符,每输入一个字符就马上开始字符串匹配,字符串匹配从左到右匹,程忽略字母大小写,并把匹配到的结果用javascriptdocument.createElement("label")动态生成多个label标签作为下拉列表。主要代码如下:

  1. function chooseMenu() {
  2. //获得输入框的值
  3. var str = document.getElementById("input").value;
  4. //获得标签名为div的数组,把首地址给divs
  5. var divs = document.getElementsByTagName("div");
  6. var div_di;
  7. var templabel;
  8. var _style_top = 0;
  9. //把choose层里面的子节点清空
  10. clearAllNode($("choose"));
  11. if (str != "") {
  12. //如果输入框的值不为空,执行以下循环
  13. for (var i = 2; i < divs.length; i++) {
  14. //getAttribute方法获得divs[i]节点属性id的值
  15. div_id = divs[i].getAttribute("id");
  16. //如果字串str在主串div_id中出现在第0个位置则添加一个innerHTML为div_id的div到
  17. //choose层
  18. if (div_id.toLowerCase().indexOf(str.toLowerCase()) == 0) {
  19. templabel = document.createElement("label");
  20. templabel.className = "suggestions";
  21. templabel.innerHTML = div_id;
  22. templabel.style.visibility = "visible";
  23. templabel.style.top = _style_top * 20 + "px";
  24. templabel.style.position="absolute"
  25. $("choose").appendChild(templabel);
  26. _style_top++
  27. }
  28. }
  29. //添加完choose层的元素后更新show层的元素
  30. if ($("choose").firstChild) {
  31. show($("choose").firstChild.innerHTML);
  32. $("choose").firstChild.style.backgroundColor = "ccc";
  33. count = 0;
  34. } else {
  35. show("");
  36. $("choose").innerHTML = "couldn't find";
  37. }
  38. } else {
  39. show("");
  40. }
  41. }

        (三)监听键盘的↑和↓事件,调用键盘事件处理函数,在label前后兄弟节点键来回移动。并更新右侧详细信息页中的内容。

        1)使用<body οnkeydοwn="handleUpAndDown()">,为整个页面添加键盘监听事件。

<body onkeydown="handleUpAndDown()">

         2)编写handleUpAndDown(evt)键盘响应函数,这里需要注意的是charCode=38为键盘键,charCode=40为键盘键。当charCode38时调用moveUp()函数,当charCode40时调用moveDown()函数。moveDown()moveUp()各自实现左侧Label上下移动效果。

  1. function moveUp() {
  2. var labels = document.getElementsByTagName("label");
  3. if (count != 0) {
  4. labels[count].style.backgroundColor = "#fff";
  5. labels[count - 1].style.backgroundColor = "#ccc";
  6. show(labels[count - 1].innerHTML);
  7. $("input").value = labels[count - 1].innerHTML;
  8. count = count - 1;
  9. }
  10. }
  11. function moveDown() {
  12. var labels = document.getElementsByTagName("label");
  13. if (count != labels.length - 1) {
  14. labels[count].style.backgroundColor = "#fff";
  15. labels[count + 1].style.backgroundColor = "#ccc";
  16. show(labels[count + 1].innerHTML);
  17. $("input").value = labels[count + 1].innerHTML;
  18. count = count + 1;
  19. }
  20. }
  21. function handleUpAndDown(evt) {
  22. evt = (evt) ? evt : event;
  23. var charCode = (evt.charCode) ? evt.charCode :
  24. ((evt.which) ? evt.which : evt.keyCode);
  25. if (charCode == 38)
  26. moveUp();
  27. if (charCode == 40)
  28. moveDown();
  29. }

         3)使用οnkeyup="handleKeyUpEvent(event),为Input输入框绑定键盘事件,代码如下:

  1. <input type="text" name="input" id="input" maxlength="10" style="width:100px;height:20px;"onkeyup="handleKeyUpEvent(event)">
  2. 输入你想查找的指令,可按键盘↑和↓移动指令

         4)编写handleKeyUpEvent(evt),避免用户在Input输入框输入文字时受到刚才添加的键盘事件干扰。

  1. function handleKeyUpEvent(evt) {//用来处理键盘事件的函数
  2. evt = (evt) ? evt : event;
  3. var charCode = (evt.charCode) ? evt.charCode :
  4. ((evt.which) ? evt.which : evt.keyCode);
  5. if (charCode == 38 || charCode == 40 || charCode == 37 || charCode == 39) {
  6. } else {
  7. chooseMenu();
  8. }
  9. }

三、程序源代码

        源代码下载地址↓↓↓:

Javascript编写的汇编语言8086指令查询工具,浏览器直接打开运行,只需一个HTML文件。-Javascript文档类资源-CSDN下载Javascript编写的汇编语言8086指令查询工具,浏览器直接打开运行,只需一个H更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/qq616491978/86372128

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读