汇编
文章平均质量分 53
liufei_learning
这个作者很懒,什么都没留下…
展开
-
汇编一日一学(1)--Hello World!
DATAS SEGMENT;13,10(0DH,0AH)是回车和换行符的ASCII码。;回车是到本行行首,换行是到下一行当前光标位置,沿用以前的打字机设置;$为字符串结束标志 STRING DB 13,10,"Hello World!",13,10,$DATAS ENDS CODES SEGMENT ASSUME CS:CO原创 2010-05-10 09:13:00 · 983 阅读 · 0 评论 -
汇编一日一学(13)--十六进制显示二进制
<br /> <br />此题算法描述:<br />十六进制转化为二进制就是每位展开:<br />如1234H 展开: 0001 0010 0011 0100<br />1.BX: 0000 0000 0000 0000<br />2.输入一个合法数,转化为0000B~1001B或转换为:1010B~1111B<br />3.与BX 合并<br />4.BX 左移四位<br /> <br />;从键盘接收一个四位的16进制数,并在终端上显示与它等值的二进制数 <br /> <br />DATAS原创 2010-06-03 00:02:00 · 2249 阅读 · 1 评论 -
汇编一日一学(12)--求最小偶数
<br /> <br />;试编写一个汇编语言程序,求出首地址为DATA的100D字数组中的最小偶数,并把它存放在AX中<br /> <br />DATAS SEGMENT <br /> DATA DW 1,2,3,4,5<br />DATAS ENDS<br /> <br />CODES SEGMENT原创 2010-06-01 11:22:00 · 3442 阅读 · 1 评论 -
汇编基础(4) 程序控制转移
<br /> <br />程序控制转移<br /> <br /> <br />对于编程来说控制程序走向是非常重要的事情,它是你的程序根据条件<br /> <br />作出判断,跳转到相应的位值。无条件跳转<br /><br />控制程序转向的最基本的指令是jJMP. <br /><br />使用形式如下: <br />JMP label<br />在程序中声明/label/的方法很简单,只要在它名字后面加上“:”, <br />label可以由任何字符混合而成但是不能由数字开头,例如,下面<br />是3个原创 2010-06-03 00:24:00 · 1588 阅读 · 0 评论 -
汇编基础(3) 运算与逻辑指令
<br /> <br />运算与逻辑指令<br />大多数运算与逻辑指令影响处理器的状态标记寄存器。<br /> <br />从上图可以看到,这是状态标记寄存器是一个16位寄存器<br /> <br />每一位称作一个标志位,可以取值 1 或者 0 。进位标志 Carry Flag (CF) - 出现无符号(unsigned overflow)溢出该位设置成1。例如,计算 255+1(结果超出0...255)。没有溢出时该位为0。零标志 Zero Flag (ZF) - 当结果为 0 时设置为1,结果不为原创 2010-06-03 00:22:00 · 2440 阅读 · 0 评论 -
汇编基础(1)变量及数组的定义声明
<br /> <br />汇编中变量及数组的定义声明<br />没有变量的程序设计语言是不可思议的,它几乎什么都做不了(除了经典的‘hello the world!’程序),毕竟有一些数值是在程序运行时随环境的变化而变化的(在程序设计时你不可能确定它)。即使是像汇编这样可以直接读写内存的程序也需要用到变量。但它不像其它高级语言那样把变量分成许多类型,它是按照变量的长度来区分的,所以定义(define)变量时就用5个不同的关键字:DB,DW,DD,DQ,DT(事实上常用的只有DB,DW)<br />DB(DE原创 2010-05-31 23:41:00 · 10557 阅读 · 1 评论 -
汇编一日一学(11)--输出十进制
<br /> <br />; 输出十进制<br /> <br />data segment<br /> ; add your data here!<br /> pkey db 0DH, 0AH, "press any key...$" <br /> NUM DB 12 <br /> COUNT DW 0<br /> NUM1 DB 10<br />ends<br /> <br />stack segment<br /> dw 128 dup(0)<br原创 2010-05-31 23:39:00 · 1197 阅读 · 0 评论 -
汇编一日一学(10)--正负数组
<br /> <br />;编写程序,将一个包含有20个数据的数组M分成两个数组:<br />;正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。 ;写一个二进制转化为十进制<br />DATAS SEGMENT<br /> COUNT EQU 20<br /> COUNT1 DB 0 ;存放正数的个数<br /> COUNT2 DB 0 ;存放负数的个数<br /> ARRAY原创 2010-05-31 23:33:00 · 2906 阅读 · 0 评论 -
汇编一日一学(7)--输入输出字串
DATAS SEGMENT STR DB "please input a string:$" BUF DB 20 DB 0 DB 20 DUP (0) ;BUF DB 20,0,20 DUP(0) ;或者这样定义 CRLF D原创 2010-05-30 00:07:00 · 1947 阅读 · 0 评论 -
汇编一日一学(9)--响铃N次
;试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII码为07)。STACKS SEGMENT dw 128 dup(0)STACKS ENDS CODES SEGMENTSTART: Input: MOV AH,1 ;输入字符原创 2010-05-30 15:28:00 · 4366 阅读 · 1 评论 -
汇编一日一学(8)--比较两个字符串
;试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否完全相同,;若相同则显示MATCH,若不相同则显示NO MATCH.DATA SEGMENT string1 DB "I a$" string2 DB "I am a student!$" YES DB "MATCH", 0DH, 0AH, $原创 2010-05-30 15:06:00 · 6512 阅读 · 0 评论 -
汇编一日一学(6)--顺序显示小写字母的前导后置/21h中断
.model small.386.code start:MAIN PROC FARpush dssub ax,axpush ax input:mov ah,7H ;键盘输入(无回显)int 21H cmpe:cmp al,20H ;比较指令 CMP (compare),ZF=1 减法结果为零, 20H A原创 2010-05-22 11:16:00 · 778 阅读 · 0 评论 -
汇编一日一学(6)--顺序显示小写字母的前导后置/21h中断
.model small.386.code start:MAIN PROC FARpush dssub ax,axpush ax input:mov ah,7H ;键盘输入(无回显)int 21H cmpe:cmp al,20H ;比较指令 CMP (compare),ZF=1 减法结果为零, 20H A原创 2010-05-22 11:14:00 · 1013 阅读 · 0 评论 -
汇编一日一学(5)--小写字母用大写字母显示
;对键盘输入的小写字母用大写字母显示出来.model small.stack 100H.code start:main proc farpush dxmov ax,0push ax mov ah,01H ;读入一个字符存放在al中int 21H cmp al,61H ;61h字原创 2010-05-20 08:51:00 · 1193 阅读 · 0 评论 -
汇编一日一学(4)--16进制加法程序
;实模式汇编程序范例 ;16进制加法程序 ;用于80486微机 ;使用立即寻址的16进制加法程序 PAGE 132 ;设置页大小 ;以下三行建立16位段 DOSSEG原创 2010-05-19 09:09:00 · 3618 阅读 · 0 评论 -
汇编一日一学(3)--调用调用汇编宏库程序
INCLUDE MACROOUT.LIBDATAS SEGMENT STRING DB Hello World,13,10,$DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX OUTPUT STRING原创 2010-05-11 15:27:00 · 2115 阅读 · 0 评论 -
汇编一日一学(2)--两个数的和(DUP,堆栈段)
DATAS SEGMENT FIVE DB 5DATAS ENDS STACKS SEGMENT DB 128 DUP (?);定义堆栈段长度为128 无初始化 对全局变量赋值为0STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSST转载 2010-05-10 09:13:00 · 6406 阅读 · 0 评论 -
汇编基础(2) 21H中断
<br /> <br />INT 21H 中断<br />AH<br />功能<br />调用参数<br />返回参数<br />00<br />程序终止(同INT 20H)<br />CS=程序段前缀<br /> <br />01<br />键盘输入并回显<br /> <br />AL=输入字符<br />02<br />显示输出<br />DL=输出字符<br /> <br />03<br />异步通迅输入<br /> <br />AL=输入数据<br />04<br />异步通迅输出<br />DL=转载 2010-06-03 00:14:00 · 2871 阅读 · 1 评论