qintangtao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  汇编

上一页 1 2

摘要:王爽汇编语言 实验17 中断例程测试程序一、实验要求 测试实验17中断例程二、测试思路1、编写程序A,实现将显存中第一屏4000个字节(8个扇区)写入软盘2、编写程序B,实现将软盘中8个扇区的数据读出到显存第一屏中3、运行实验17的中断安装程序,然后运行程序A,清屏后运行程序B。正常状况下屏幕内容恢复三、详细设计1、程序Aassume cs:codecode segmentstart: mov ax,0b800h mov es,ax mov si,0 mov ah,1 mov dx,0 mov al,8 mov bl,0 int 7ch mov ax,4c00h int 21h code .. 阅读全文
posted @ 2013-01-20 23:46 qintangtao 阅读(162) 评论(0) 推荐(0)

摘要:一、相关资料系统启动初始化完成后最终调用19h,该中断读取软盘的第一扇区或硬盘的第一扇区到0:7c00开始的512个字节的内存空间中,并将cs:ip指向0:7c00执行。更详细参考王爽汇编语言第二版,课程设计2,p.312二、设计思路将安装程序分为三个段,1、第一个段为安装程序,负责将第二个段写入第一扇区,第三个段写入2-17扇区;2、第二个段是主引导程序,存在于软盘第一扇区,由BIOS的19h中断读取到0:7c00开始的内存单元中,并执行0:7c00的第一行代码。这一段的任务是将软盘2-17扇区的数据读入内存,并执行。(这里读入到了2000:0开始的内存中)3、第三个段是系统程序,存放所有引 阅读全文
posted @ 2013-01-20 23:44 qintangtao 阅读(435) 评论(0) 推荐(0)

摘要:;编程;接收用户的键盘输入, 输入'r',将屏幕上的字符设置为红色; 输入'g',将屏幕上的字符设置为绿色; 输入'b',将屏幕上的字符设置为蓝色assume cs:codecode segmentstart: mov ah, 0 int 16h ;从键盘缓冲区中读取数据[ah:扫描码、al:ASCII] mov ah, 1 ;初始化 颜色 1111 1000 or [ah=0000 0001] 蓝色 cmp al, 'r' je red cmp al, 'g' je green cmp al, 'b 阅读全文
posted @ 2013-01-20 22:50 qintangtao 阅读(454) 评论(0) 推荐(0)

摘要:;在屏幕中间依次显示'a'~'z',并可以让人看清。;在显示的过程中,按下Esc键后,改变显示的颜色assume cs:codestack segment db 128 dup(0)stack endsdata segment dw 0, 0data ends code segment start: ;设置栈 mov ax, stack mov ss, ax mov sp, 128 ;设置数据段 mov ax, data mov ds, ax ;--将原来的int 9中断例程的入口地址保存在ds:0[IP]、ds:2[CS]单元中 mov ... 阅读全文
posted @ 2013-01-20 01:21 qintangtao 阅读(553) 评论(0) 推荐(0)

摘要: 阅读全文
posted @ 2013-01-19 21:30 qintangtao 阅读(212) 评论(0) 推荐(0)

摘要:assume cs:codecode segmentstart: mov al, 8 out 70h, al in al, 71h mov ah,al mov cl, 4 shr ah, cl and al, 00001111b add ah, 30h add al, 30h mov bx, 0b800h mov es, bx mov bl, 0ah mov byte ptr es:[160*12+40*2], ah mov byte ptr es:[160*12+40*2+1], bl mov byte... 阅读全文
posted @ 2013-01-19 17:37 qintangtao 阅读(359) 评论(0) 推荐(0)

摘要:flag寄存器15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF ZF标志零标志位 记录相关指令执行后: 如果结果为0,ZF=1 如果结果不为0,那么ZF=0PF标志奇偶标志位 记录相关指令执行后: 其结果所有二进制位1的个数是否为奇偶 如果1的个数为偶数,PF=1 如果1的个数为奇数,PF=0SF标志符号标志位 记录相关指令执行后:其结果是否为负 如果结果为负,SF=1 如果... 阅读全文
posted @ 2013-01-18 10:21 qintangtao 阅读(1667) 评论(0) 推荐(0)

摘要:assume cs:codecode segmentstart: mov ax, cs mov ds, ax mov si, offset do0 ;ds:si指向源地址 mov ax, 0 mov es, ax mov di, 200h ;es:di指向目的地址 mov cx, offset do0end - offset do0 ;设置cx为传输长度 cld ;设置传输方向为正 rep movsb ;设置中断向量表 mov ax, 0 mov es, ax mov word ptr es... 阅读全文
posted @ 2013-01-17 23:07 qintangtao 阅读(432) 评论(0) 推荐(0)

摘要:;--------------------------------------------------------------------------------------;功能:;将word型数据转变为表示十进制的字符串,字符串以0位结尾符;--------------------------------------------------------------------------------------assume cs:code, ds:datadata segment db 10 dup(0)data endscode segment start: mov ax, 126... 阅读全文
posted @ 2013-01-15 10:34 qintangtao 阅读(229) 评论(0) 推荐(0)

摘要:;--------------------------------------------------------------------------------------------;解决除法溢出的问题:;除法溢出;1、标准:;被除数:;如果除数是8位,被除数则为16位,默认放在AX中;如果除数是16位,被除数则为32位,在DX和AX中存放,DX存放高16位,AX存放低16位;结果:;如果除数为8位,则AL存储除法操作的商,AH存储除法操作的余数;如果除数为16位,则AX存储除数操作的商,DX存储除法操作的余数;2、自定义:;被除数位dword型,除数位word型, 结果为dword型;参 阅读全文
posted @ 2013-01-14 17:44 qintangtao 阅读(1363) 评论(0) 推荐(0)

摘要:;---------------------------------------------------------;编写字符串;显示字符串;在第8行 第3列 显示 绿色 Welocme to masm!;---------------------------------------------------------assume cs:codedata segment db 'Welocme to masm!', 0data endscode segment start: mov dh, 8 ;行号[1~25] mov dl, 3 ;列号[1~80] mov cl, 2 ;颜 阅读全文
posted @ 2013-01-14 16:11 qintangtao 阅读(178) 评论(0) 推荐(0)

摘要:inc 寄存器(寄存器)=(寄存器)+1dec 寄存器(寄存器)=(寄存器)-1add和sub1、add add 寄存器,数据 add 寄存器,寄存器 add 寄存器,内存单元 add 内存单元,寄存器2、sub sub 寄存器,数据 sub 寄存器,寄存器 sub 寄存器,内存单元 sub 内存单元,寄存器 div【除法指令】除法: 有8位和16位两种,在一个寄存器或内存单元中被除数: 如果除数是8位,被除数则为16位,默认放在AX中 如果除数是16位,被除数则为32位,在DX和AX中存放,DX存放高16位,AX存放低16位结果: 如果除数为8位,则AL存储除法操作的商,AH存储除法... 阅读全文
posted @ 2013-01-14 15:37 qintangtao 阅读(1501) 评论(0) 推荐(0)

摘要:offset 标号取得标号处的偏移位置jmp short 标号段内短跳转(IP)=(IP)+8位位移 【有符号的位移(-128~127)】jmp near ptr 标号段内近转移(IP)=(IP)+16位位移 【有符号的位移(-132768~32767)】jmp far ptr 标号段间转移(CS)=标号所在段的段地址(IP)=标号在段中的偏移地址比如:EA 0B 01 BD OB高地址"BD OB" ==> 转移的段地址低地址"0B 01" ==> 偏移地址jmp 16位寄存器(IP)=(16位寄存器)jmp word ptr 内存单元地址 阅读全文
posted @ 2013-01-14 11:45 qintangtao 阅读(410) 评论(0) 推荐(0)

摘要:;---------------------------------------------------; 编程:;在屏幕中间分别显示绿色、绿低红色、白底蓝色的字符串'welcome to masm!';;---------------------------------------------------assume cs:code,ds:data,ss:stackdata segment db 'welcome to masm!' db 02h, 24h, 71h data endsstack segment dw 8 dup(0)stack endscod 阅读全文
posted @ 2013-01-14 11:31 qintangtao 阅读(1034) 评论(0) 推荐(0)

上一页 1 2