2015年8月6日

摘要: loop 指令为循环指令,所有的循环指令都是**短转移**,在对应的机器码中包含转移的位移,而不是目的地址。对 IP 的修改范围都为:-128~127。指令格式:loop 标号操作:1. (cx)=(cx)-12. 如果 (cx)≠0,(IP)=(IP)+8 位位移。8 位位移=标号处的地址-loo... 阅读全文

posted @ 2015-08-06 10:53 mconintet 阅读(476) 评论(0) 推荐(0) 编辑

2015年8月5日

摘要: 补全编程,利用 jcxz 指令,实现在内存 2000h 段中查找第一个值为 0 的字节,找到后将它的偏移地址放到 dx 中。```assume cs:codecode segmentstart: mov ax, 2000h mov ds, ax mov bx, 0s: _________ _... 阅读全文

posted @ 2015-08-05 23:11 mconintet 阅读(340) 评论(0) 推荐(0) 编辑

摘要: ```jmp short 标号 ; 段内转移,IP 偏移 8 位jmp near ptr 标号 ; 段内转移,IP 偏移 16 位jmp far ptr 标号 ; 段间转移,同时更改 CS 和 IPjmp 16 位 reg ; (IP)=(16 位 reg)jmp wo... 阅读全文

posted @ 2015-08-05 19:23 mconintet 阅读(170) 评论(0) 推荐(0) 编辑

摘要: ```jmp short 标号 ; 段内转移,IP 偏移 8 位jmp near ptr 标号 ; 段内转移,IP 偏移 16 位jmp far ptr 标号 ; 段间转移,同时更改 CS 和 IPjmp 16 位 reg ; (IP)=(16 位 reg)jmp wo... 阅读全文

posted @ 2015-08-05 18:49 mconintet 阅读(221) 评论(0) 推荐(0) 编辑

2015年8月4日

摘要: 实验7Power idea 公司从 1975 年成立一直到 1995 年的基本情况如下:年份 | 收入(千美元)|雇员(人)| 人均收入(千美元)-----|------------:|-------:|----------------:1975 | 16 | 3 | ?1976 | 22 |... 阅读全文

posted @ 2015-08-04 22:49 mconintet 阅读(670) 评论(0) 推荐(0) 编辑

摘要: ## div 指令div 是除法指令,后面跟的是除数,被除数默认在 ax, 或者 dx、ax 组成的存储单元中。1. 除数可以有 8 位和 16 位两种,存储于一个 reg 或内存单元中,也就是说不可以 div 后面跟着 [idata](http://www.cnblogs.com/mconinte... 阅读全文

posted @ 2015-08-04 20:55 mconintet 阅读(1335) 评论(0) 推荐(0) 编辑

摘要: 在计算机执行指令的前一刻,CPU 需要知道需要处理的数据的位置。那么这个位置有哪些?有点类似这个问题:在执行指令的前一刻,数据可以存放的位置?以这书本涉及的程度,首先想到的就是寄存器了。其次就是内存。可以先看下标准答案:1. 立即数(idata)2. 寄存器3. 段地址(SA)和偏移地址(EA)可见... 阅读全文

posted @ 2015-08-04 19:08 mconintet 阅读(596) 评论(0) 推荐(0) 编辑

摘要: ### bx、si、di 和 bp在 8086CPU 中,只有这 4 个寄存器可以用在 “[...]” 中来进行内存单元的寻址。```mov ax, [bx]mov ax, [bx+si]mov ax, [bx+di]mov ax, [bp]mov ax, [bp+si]mov ax, [bp+di... 阅读全文

posted @ 2015-08-04 18:27 mconintet 阅读(708) 评论(0) 推荐(0) 编辑

摘要: 问题 7.9编程,将 datasg 段中每个单词的前4个字母改为大写字母。```assume cs:codesg, ds:datasg, ss:stacksgstacksg segment dw 0, 0, 0, 0, 0, 0, 0, 0stacksg endsdatasg segment db ... 阅读全文

posted @ 2015-08-04 18:02 mconintet 阅读(258) 评论(0) 推荐(0) 编辑

摘要: 在汇编中可以使用 `loop 段地址:偏移地址` 并配合 cx 达到循环执行的目的,但是在一些资料中看到说,cx 是循环的次数,我觉得这是不对的。比如下面这段代码的作用是使得最终的 ax 中的值为 3```assume cs:codecode segmentstart: sub ax, ax mo... 阅读全文

posted @ 2015-08-04 16:02 mconintet 阅读(1698) 评论(0) 推荐(0) 编辑