如果在汇编语言中我们不以十六进制形式写数字而用十进制写入会怎么样?

时间:2018-02-18 09:52:15

标签: assembly x86-16

当我们写len dw 10什么值存储在len decimel 10或10h时。如果它是10h,那么为什么ARR如图所示。不能直接指定小数值。

ARR DW 0000H,1111H,2222H,3333H,4444H,5555H,6666H,7777H,8888H,9999H
LEN DW 10

2 个答案:

答案 0 :(得分:3)

@Override public void onBindViewHolder(final ChipAdapterAllSkills.ChipViewHolder holder, final int position) { String skill = filtredSkillList.get(position).getName(); System.err.println("SKILL "+skill+" position "+position); holder.skillChip.setChipText(skill); holder.skillChip.setSelectable(true); holder.skillChip.setSelected(true); holder.skillChip.setTextColor(MainAplication.getContext().getResources().getColor(R.color.accent)); holder.skillChip.changeBackgroundColor(MainAplication.getContext().getResources().getColor(R.color.blue)); holder.skillChip.setOnSelectClickListener(new OnSelectClickListener() { @Override public void onSelectClick(View v, boolean selected) { System.err.println(selected); if(!selected) { SelectSkills.getSkillsToAdd().add(filtredSkillList.get(position)); }else { SelectSkills.getSkillsToAdd().remove(filtredSkillList.get(position)); } } }); } @Override public int getItemCount() { return filtredSkillList.size(); } @Override public Filter getFilter() { return new Filter() { @Override protected FilterResults performFiltering(CharSequence charSequence) { String target = charSequence.toString(); if (target.isEmpty()) { filtredSkillList = skillList; } else { List<Skill> list = new ArrayList<>(); for (Skill s : skillList) { if (s.getName().toLowerCase().contains(target.toLowerCase())) { list.add(s); System.err.println(s.getName()); } } filtredSkillList = list; } FilterResults results = new FilterResults(); results.values = filtredSkillList; return results; } @Override protected void publishResults(CharSequence charSequence, FilterResults filterResults) { filtredSkillList = (ArrayList<Skill>) filterResults.values; notifyDataSetChanged(); } }; } 0ah是写入相同值的两种不同方式,即它们汇编到内存中的相同字节。

选择哪一个更具可读性/在您的上下文中具有更合适的语义含义。

另请注意,汇编程序输出是二进制,而不是十六进制或十进制或任何其他值的ASCII文本表示。

答案 1 :(得分:1)

在回答你的问题时,你可以使用你喜欢的任何类型号码。 MASM提供说明符以消除任何歧义。从MASM手册:

说明符是:

y for binary      (or if the default radix is not hexadecimal)
0 or q for octal 
t for decimal     (or d  if the default radix is not hexadecimal)
h for hexadecimal

Radix说明符可以是大写或小写字母;本书中的示例代码是小写的。