汇编语言实现打印杨辉三角
计算杨辉三角形的前n(n<=10)行,并显示在屏幕上。要求计算及显示
用子程序形式实现。其显示格式为:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
org 100h
START: jmp begin
message db 13,10,9,'Input N(N<=10): $'
error db 13,10,9,'Data out of range!$'
begin:
push ...
汇编语言实现在指定字符串中搜索字符'A'的方法
我也不知道我以前怎么会写这种东西的,留个纪念…
;用串操作指令设计程序,实现在指定字符串中搜索字符‘A',
;若该字条串中有字符'A',
;则将第一个'A'字符在该字符串中的位置记录在BX寄存器中,
;若不包含,则使BX=0FFFFH。
;在程序开始查找指定字符前要求在屏幕上输出提示信息:
;The program is running!查找结束后输 ...
详解汇编语言各种指令的解释与用法
【数据传输指令】
一、通用数据传送指令
1、传送指令MOV(move)
指令的汇编格式:MOV DST,SRC 指令的基本功能:(DST)<-(SRC) 将原操作数(字节或字)传送到目的地址。指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。指令的执行对标志位的影响:不影响标志位。指令的特殊要求: ...
汇编程序 查表求平方的实现
【任务】设在内存单元SQTAB首址开始存放了0~15的平方数表。要求用直接查表法编一程序,求出A单元中给定数(<=15)的平方值送B单元保存。
【参考解答1】
assume cs: code, ds: data
data segment
sqtab db 0, 1, 4, 9, 16, 25, 36, 49, 64, 81
db 100, 121, 144, 169, 196, 225
a db 12
b db ?
data end ...
汇编实现直接插入排序的方法示例
上一篇实现了简单插入排序的算法,这一篇主要实现直接插入排序算法:
S0 SEGMENT STACK
DW 20 DUP(?)
TOP LABEL WORD
S0 ENDS
S1 SEGMENT
TIP DB "Input ten number and separate the numbers with space:", 0DH, 0AH, 24H
ARY DW 20 DUP(0)
CRLF DB 0DH, 0AH, 24H
N DW 0
E DW 0
S1 ENDS
S2 SEGMENT
ASS ...
汇编实现简单选择排序的方法示例
上阵子重温数据结构,差不多更新到排序。这学期学了汇编语言,其中有几个实验便是实现内部排序算法。以下是实现简单选择排序的程序设计:
S0 SEGMENT STACK
DW 20 DUP(?)
TOP LABEL WORD
S0 ENDS
S1 SEGMENT
TIP DB "Input ten number and separate the numbers with space:", 0DH, 0AH, 24H
ARY DW 20 DUP(0)
CR ...
汇编实现冒泡排序的方法示例
冒泡排序算法的运作如下:(从后往前)
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任 ...
汇编语言指令mov、add、sub、jmp详解
指令(instruction)是一种语句,它在程序汇编编译时变得可执行。汇编器将指令翻译为机器语言字节,并且在运行时由 CPU 加载和执行。
一条指令有四个组成部分:
标号(可选)
指令助记符(必需)
操作数(通常是必需的)
注释(可选)
不同部分的位置安排如下所示:
[label: ] mnemonic [operands] [;comment]
...
汇编语言实现电子闹钟思路详解
2.1 设计思路
首先使用8255、8254、8259 三个芯片实现电子时钟的功能,让闹钟可以正常走时;其次,在时钟的基础上添加闹铃功能、整点报时功能、设置当前时间功能;完成设计。
2.2 设计方案
1. 电子时钟部分:此次设计是通过对计数器8254设定计数值对脉冲进行计数,在程序里,8254工作于计数器0,方式3。接入的CLK为1MHz, ...
汇编语言乘指令 MUL、IMUL的具体使用
MUL: 无符号乘
==================================================
;影响 OF、CF 标志位
;指令格式:
;MUL r/m ;参数是乘数
;如果参数是 r8/m8, 将把 AL 做乘数, 结果放在 AX
;如果参数是 r16/m16, 将把 AX 做乘数, 结果放在 EAX
;如果参数是 r32/m32, 将把 EAX 做乘数, 结果放在 EDX:EAX
当乘积 ...
汇编 JMP使用详解
汇编 JMP 详解关键词说明
RVA: 相对虚拟地址(Relative Virtual Address),在内存中相对于PE文件装入地址的偏移位置,是一个相对地址。
JMP 的 3 种类型
短跳转(Short Jmp,只能跳转到256字节的范围内),对应机器码:EB
近跳转(Near Jmp,可跳至同一段范围内的地址),对应机器码:E9
远跳转(Far Jmp,可跳至任 ...
汇编语言学习
目录汇编语言软件安装1.DOSBox2.Vim编译和链接将源代码 生成最终 的 exe 文件 然后执行进制10进制2进制进制快速转换字节转换小结寄存器通用寄存器(地址寄存器)指令寄存器 CS(段地址)和IP(偏移地址)指令的执行过程debug寄存器(内存访问)3个段数据段1. 字的存储2.3. mov,add,sub 指令4. -d 段地址:偏移地址5. 在内 ...
汇编指令:JO、JNO、JB..的使用方法
汇编指令: JO、JNO、JB、JNB、JE、JNE、JBE、JA、JS、JNS、JP、JNP、JL、JNL、JNG、JG、JCXZ、JECXZ、JMP、JMPE
名称
功能
操作数
操作码
模数
寄存器1
寄存器2
或内存
位移量
立即数
符号
方向
芯片
型号
16位
...
汇编语言:比较指令、跳转指令、JCC的使用
一、JMP 指令:修改EIP 当前运行的下一条指令
JMP 寄存器/立即数
目标类似: mov EIP,寄存器/立即数
CALL指令: 调用函数 CALL 地址A/寄存器
等价:
  ...
汇编跳转指令使用总结
虽然jmp指令提供了控制转移,但是它不允许进行任何复杂的判断。80x86条件跳转指令提供了这种判断。条件跳转指令是创建循环和实现其他条件执行语句。条件跳转指令检查一个或多个标志位,判断它们是否匹配某个特殊条件(就像setcc指令):如果标志匹配成功,该指令就将控制转移到目标位置;如果匹配失败,CPU忽略该条件跳转指令 ...
汇编 JCC指令表与笔记
汇编-JCC
之前可以修改EIP寄存器的指令
JMP,CALL,RETN
所有JCC指令的动作->根据标志寄存器修改EIP的值
标志寄存器 EFLAGS
CF(bit 0)[Carry flag] C位
若算术产生的结果在最高有效位(most-significant bit)发生进位或者借位则将其置1 反之清零
这个标志通常用来指示无符号证书运算的溢出状态
宽度溢出位。只要容器内放不 ...
汇编指令-状态寄存器、cmp、test、jz等指令详细说明
一、状态寄存器
首先看看:状态寄存器(即标志寄存器)
PSW(Program Status Word)程序状态字(即标志)寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,
如下所示:
条件码:
①OF(Overflow Flag)溢出标志,溢出时为1,否则置0.标明一个溢出了的计算,如:结构和目标不匹配。
②SF(Sign Flag)符号标志,结果为负时置1, ...
汇编语言伪指令和汇编指令的区别
[指令语句]
每一条指令语句在源程序汇编时都要产生可供计算机执行的指令代码(即目标代码),所以这种语句又叫可执行语句。每一条指令语句表示计算机具有的一个基本能力,如数据传送,两数相加或相减,移位等,而这种能力是在目标程序(指令代码的有序集合)运行时完成的,是依赖于汁算机内的中央处理器(CPU)、存储器、I ...
汇编语言软件延时1s的实现方法
对于不同的计算机,因为其主频不同,延时1s的参数也不相同,计算延时的方法如下:
计算机主频:x (Hz)
一条LOOP语句执行始终周期数:y
所需要延时的时间:z (s)
需要执行的语句数:a
z=y*(1/x)*a
计算得到所需的执行语句数编写程序。
例:(计算机主频为3GHz)
delay proc near
push bx
push cx
mov bx,400h
...
汇编中的数组分配和指针的实现代码
数组简介
如果各位猿友是一路跟着LZ看到这里的,那么数组的定义就非常简单了,它就是一个相同数据类型的数据集合。数组存储在一系列逻辑上连续的内存块当中,之所以说是逻辑上连续,是因为整个内存或者说存储器本身就是逻辑上连续的一个大内存数组。如果我们用Java语言的类型来表示我们的存储器的话,可以看做是byte[] ...