在单独的行上打印每个单词

时间:2017-11-27 17:19:13

标签: c assembly x86-16

我无法理解我将在下面提供的代码中的几行。

//imports here
public class Main 

    public static void main(String[] args) {


        try {
            String text = "this text will be encrypted";

            String key = "Bar12345Bar12345";

            //Create key and cipher
            Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
            Cipher cipher = Cipher.getInstance("AES");

            //encrypt text
            cipher.init(Cipher.ENCRYPT_MODE, aesKey);
            byte[] encrypted = cipher.doFinal(text.getBytes());
            write(new String(encrypted));

        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException e) {
            e.printStackTrace();
        }

    }

    public static void write(String message) {
        BufferedWriter bw = null;
        FileWriter fw = null;

        try {

            String data = message;

            File file = new File(FILENAME);
            if (!file.exists()) {
                file.createNewFile();
            }


            fw = new FileWriter(file.getAbsoluteFile(), true);
            bw = new BufferedWriter(fw);

            bw.write(data);

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            try {

                if (bw != null)
                    bw.close();

                if (fw != null)
                    fw.close();

            } catch (IOException ex) {

                ex.printStackTrace();

            }
        }
    }

}

我在他们的评论中写了几行我不知道的意义。我也是汇编语言编程的新手,这是我在教科书中读到的内容

1 个答案:

答案 0 :(得分:2)

MOV DL,10H; what is significance of this line? 

10H很可能是应该读取10的拼写错误,这是换行符的ASCII代码。它将光标在屏幕上向下移动1行。

MOV DL,13H ; what is significane of this line 

13H很可能是应该读取13的拼写错误,这是回车的ASCII代码。它将光标移动到屏幕的最左侧。

INT 21H; And this one 

INT 21H指令是一个DOS系统调用,它执行您将函数编号放在AH寄存器中的函数。

如果当前字符不是空格字符,则整个代码将输出当前字符 如果它是空格字符,则代码执行换行序列(回车+换行)。

由于在此内联汇编代码之前发生了后增量sc++,因此只有MOV DL,strings[SI]指令替换为MOV DL,strings[SI-1]时,代码才能正常工作。

感谢interjay抓住错别字。