第6章习题 x86汇编从实模式到保护模式
第6章习题1,2
;第6章习题1,2;文件名:c06_1.asm;文件说明:硬盘主引导扇区代码;创建日期:2017-10-04 16:57jmp near startdata1: db 0x05,0xff,0x80,0xf0,0x97,0x30
data2: dw 0x90,0xfff0,0xa0,0x1235,0x2f,0xc0,0xc5bcstart: mov ax,0x07c0 ;设置数据段基地址 mov ds,axmov ax,0xb800 ;设置附加段基地址 mov es,axmov dx,0 ;dh和dl分别计正数和负数个数mov cx,6 ;循环6次mov bx,data1mov si,0
lop1: cmp byte [bx+si],0x00jg plusinc dl ;不大于0的计数,如果大于0,jg指令会跳过这句
plus: inc si loop lop1mov dh,0x06sub dh,dl add dh,0x30 add dl,0x30mov [es:0x00],dhmov [es:0x06],dlmov dx,0 ;这段和上面基本是一样的mov cx,7mov bx,data2mov si,0
lop2: cmp byte [bx+si],0x00jg plus2inc dl
plus2: inc si loop lop2mov dh,0x07sub dh,dladd dh,0x30add dl,0x30mov [es:0x0C],dhmov [es:0x10],dljmp near $times 510-($-$$) db 0db 0x55,0xaa
注意题中数字没有0, 所以这里用的jg指令比较数字是否大于0, 如果题中数字包含0的话, 还需要加上判断是否等于0.
本页中还有一个思考题(p97), xor dx,dx
之后标志位变化为SF=0, PF=1, ZF=1. 原因是指令执行后dx=0x00000000 00000000, ZF零标志当然为1, 低八位中”1”有0个, 偶数, PF=1, 最高位为比特”0”, SF=0.
习题3:
mov cx,0
delay: loop delay
将执行ffff次或者理解为死循环, 因为当遇到loop语句时, 是先cx减一, 在判断ZF标志位是否为1的, 所以cx初值为0时, 第一次遇到loop时, cx减一变成-1, 之后不停减一, 直到减一圈回到0才会停下.
第6章习题 x86汇编从实模式到保护模式相关推荐
- 李忠 X86汇编语言 从实模式到保护模式-初学
学习资料: 教学视频 网易云课堂 哔哩哔哩 原书网站 原书相关源码附件下载 网友帖子 除了后面没有图片之外很不错的笔记总结,写者很用心 留存待看,一片文章写了特点 很有特色总结的笔记 学习目标: 15 ...
- x86汇编语言从实模式百度云_x86汇编语言:从实模式到保护模式
x86汇编语言:从实模式到保护模式2013年1月由电子工业出版社出版发行,总共6000行的源代码,全方位地向读者展现汇编语言程序设计之美.尽管汇编语言也是一种计算机语言,但却是与众不同的,与它的同类们 ...
- ASM:《X86汇编语言-从实模式到保护模式》第10章:32位x86处理器的编程架构
★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存 ...
- [书]x86汇编语言:从实模式到保护模式 -- 第13章 mbr加载内核、内核加载应用程序
# mbr加载内核 1.0x7c00,16位实模式 2.进入保护模式前的准备工作:创建段描述符(代码段.数据段.堆栈段.显示缓冲区),构建gdt 3.进入保护模式 ; 开启保护模式 ; CR0的第1位 ...
- 程序的加载和执行(六)——《x86汇编语言:从实模式到保护模式》读书笔记26
程序的加载和执行(六)--<x86汇编语言:从实模式到保护模式>读书笔记26 通过本文能学到什么? NASM的条件汇编 用NASM编译的时候,通过命令行选项定义宏 Makefile的条件语 ...
- 任务和特权级保护(五)——《x86汇编语言:从实模式到保护模式》读书笔记36
任务和特权级保护(五)--<x86汇编语言:从实模式到保护模式>读书笔记36 修改后的代码,有需要的朋友可以去下载(c14_new文件夹).下载地址是: GitHub: https://g ...
- 任务和特权级保护(四)——《x86汇编语言:从实模式到保护模式》读书笔记35
任务和特权级保护(四)--<x86汇编语言:从实模式到保护模式>读书笔记35 7. 正式进入用户程序的局部空间 67 mov ebx,message_1 68 call far [fs:P ...
- 程序的加载和执行(五)——《x86汇编语言:从实模式到保护模式》读书笔记25
程序的加载和执行(五)--<x86汇编语言:从实模式到保护模式>读书笔记25 前面几篇博文终于把代码分析完了.这篇就来说说代码的编译.运行和调试. 1.代码的编译及写入镜像文件 之前我们都 ...
- 程序的加载和执行(一)——《x86汇编语言:从实模式到保护模式》读书笔记21
程序的加载和执行(一) 本文及之后的几篇博文是原书第13章的学习笔记. 本章主要是学习一个例子,对应的代码分为3个文件: ;代码清单13-1;文件名:c13_mbr.asm;文件说明:硬盘主引导扇区代 ...
最新文章
- 编译器设计-符号表-中间代码生成
- Java之相对路径找不到文件问题解决方法
- mysql索引检测_mysql检测重复索引
- 电信级的RSA加密后的密码的破解方法
- WinForm中的ListBox和ComboBox的使用
- 远洋渔船一次出海好几年,生活枯燥,那你在船上最开心的事是啥?
- 织梦++高级搜索php,织梦高级搜索页面advancedsearch.php调用自定义字段
- 基本算法——前缀和与差分
- Hibernate原生sqlquery报错:java.math.BigDecimal cannot be cast to java.lang.Int
- 花式Finetune方法大汇总
- 计算机应用基础实验报告册,大学计算机应用基础实验报告册 - 2010版 - (1)
- 推荐:年度巨献:《Ubuntu桌面生存指南》(作者:ghosert)
- win7修复计算机消失,详细教您win7 aero效果消失了怎么恢复
- iptv组播和单播的区别
- 厦门大学计算机考研复试线2021,【厦门大学】2021考研复试分数线3月13日已公布!速看!...
- 6个有效激励合作伙伴和促进推荐的小技巧
- 视频教程-《信息学竞赛-C语言》 DAY30-清华尹成老师-C/C++
- 关于.net介绍 /第一行C#代码 /什么是面向对象
- dataframe增加一行数据
- Linux systemctl 详解自定义 systemd unit